Java Generics Chapter 9: Design patterns. /** * INF329 - Spring 2007 * Presented by Stian Stokkenes * */ {
|
|
- Silas Lester Hawkins
- 6 years ago
- Views:
Transcription
1 Java Generics Chapter 9: Design patterns /** * INF329 - Spring 2007 * Presented by Stian Stokkenes * stian@stokkenes.de */ {
2 Chapter 9 - Design patterns Goal: Show how design patterns can take advantage of Java generics Viewing the following patterns: Visitor pattern Interpreter pattern Function pattern Strategy pattern Subject- / Observer pattern 2
3 9.1 Visitor pattern Data structure often defined by case analysis and recursion A binary tree of type Tree<E> is A leaf containing a single value of type E A branch containing a left and a right sub tree of types E Represented in OO language by abstract class Each case by subclass Abstract class declares abstract method for all possible operation Subclasses implements the methods 3
4 ex.1 Simple tree and client abstract class Tree<E>{ abstract public String tostring(); abstract public double sum(); public static <E> Tree<E> leaf(final E e){ return new Tree<E>(){ public String tostring(){return e.tostring(); public Double sum(){return ((Number)e).doubleValue(); ; public static <E> Tree<E> branch(final Tree<E> l, final Tree<E> r){ return new Tree<E>(){ public String tostring(){ return ( +l.tostring()+ ^ +r.tostring()+ ) ; public Double sum(){return l.sum() + r.sum(); ; class TreeClient{ public static void main(string[] args){ Tree<Integer> t = Tree.branch(Tree.branch(Tree.leaf(1), Tree.leaf(2)),Tree.leaf(3)); assert t.tostring().equals( ((1^2)^3) ); assert t.sum() == 6; 4
5 9.1 Visitor pattern Difficult to know all operations required on data structure Different developers responsible for definition classes and client classes of the definition classes Visitor pattern -> possible to provide new operations without modifying the classes that defines the data structure Abstract class declares visit method. Visitor as argument Visitor implements interface that specifies one method for each case in the specification of the structure Subclasses implement visit method by calling method of the visitor for the corresponding case. 5
6 ex.2 Tree with visitors abstract class Tree<E> { public interface Visitor<E, R>{ public R leaf(e elt); public R branch(r left, R right); public abstract <R> R visit(visitor<e, R> v); public static <T> Tree<T> leaf(final T e){ return new Tree<T>(){ public <R> R visit(visitor<t, R> v){return v.leaf(e); ; public static <T> Tree<T> branch(final Tree<T> l, final Tree<T> r){ return new Tree<T>(){ public <R> R visit(visitor<t, R> v){ return v.branch(l.visit(v), r.visit(v)); ; 6
7 9.1 Visitor pattern Abstract class Tree<E> only one abstract method Interface Visitor<E, R> specifies two method leaf Accepts a value of type E Returns value of type R branch Accept two values of type R Returns value of type R Subclasses implements visit leaf by invoking leaf method of visitor on element in leaf branch By invoking branch method of visitor of the visitor on the result of recursive calls of the visitor on the left and right subtrees. 7
8 9.1 Visitor pattern Without generics each visitor would have to return a result of type Object many additional casts would be required visitors often designed to not return a value result often accumulated in variable local to visitor complicating flow of data through the program With generics each visitor has two type parameters One for the element type of the tree One for the return type of the visitor 8
9 ex.3 Client with visitors class treeclient { public static <T> String tostring(tree<t> t){ return t.visit(new Tree.Visitor<T, String>(){ public String leaf(t e){ return e.tostring(); public String branch(string l, String r){ return ( + l + ^ + r + ) ; ); public static <N extends Number> double sum(tree<n> t){ return t.visit(new Tree.Visitor<N, Double>() { public Double leaf(n e){ return e.doublevalue(); public Double branch(double l, Double r){ return l+r; ); public static void main(string[] args){ Tree<Integer> t = Tree.branch(Tree.branch(Tree.leaf(1), Tree.leaf(2)),Tree.leaf(3)); assert tostring(t).equals( ((1^2)^3) ); assert sum(t) == 6; 9
10 9.1 Visitor pattern Sum method more precise with visitors With simple trees Sum need type signature to indicate that it works on any element type Requires cast to convert leaf to Number Class cast error is raised at run time if sum invoked on tree without numbers With visitors Sum method may have type signature that indicate it works only on elements that are numbers No cast required Type error reported at compile time 10
11 9.2 Interpreter pattern One use of trees is to represent expressions in a programming language Represented by abstract class Each expression represented by subclass Abstract method to evaluate an expression Each subclass implements the method as appropiate for the coreresponding expression With generics Possible to parameterize expression type by type of expression, e.g. Exp<Integer>, Exp<Pair<Integer, Integer>> 11
12 ex.4 Interpreter with generics class Pair<A,B> { private final A left; private final B right; public Pair(A l, B r){ left = l; right = r; public A left(){ return left; public B right(){ return right; abstract class Exp<T> { abstract public T eval(); static Exp<Integer> lit(final int i){ return new Exp<Integer>(){ public Integer eval(){ return i; ; static Exp<Integer> plus(final Exp<Integer> e1, final Exp<Integer> e2){ return new Exp<Integer>(){ public Integer eval(){ return e1.eval()+e2.eval(); ; static <A, B> Exp<Pair<A,B>> pair(final Exp<A> e1, final Exp<B> e2){ return new Exp<Pair<A, B>>(){ public Pair<A, B> eval(){ return new Pair<A,B>(e1.eval(),e2.eval()); ; static <A, B> Exp<A> left(final Exp<Pair<A, B>> e){ return new Exp<A>(){ public A eval() { return e.eval().left(); ; static <A, B> Exp<B> right(final Exp<Pair<A, B>> e){ return new Exp<B>(){ public B eval() { return e.eval().right(); ; public static void main(string[] args){ Exp<Integer> e = left(pair(plus(lit(3),lit(4)),lit(5))); assert e.eval() == 7; 12
13 9.2 Interpreter pattern In example: Integer literal of type Exp<Integer> Sum expression of type Exp<Integer>, with two sub expressions of type Exp<Integer> Expression to construct pair of type Exp<Pair<A, B>> with two sub expressions of type Exp<A> and Exp<B> Expression to select the left component of a pair of type Exp<A> with subexpression of type Exp<Pair<A, B>> Expression to select the left component of a pair of type Exp<B> with subexpression of type Exp<Pair<A, B>> 13
14 9.3 Function pattern Converts an arbitrary method into an object Relation between an function and the corresponding method similar to relation between Comparator and compareto method Generic version demonstrate how to use type variable in throws clause of a method declaration. Useful when different instances of a class contain methods that may be useful when different instances of a class contain methods that may raise different checked exceptions See example 5. 14
15 9.3 Function pattern Example defines class, Function <A, B, X>, which represent a function Class contains abstract method, apply Accepts argument of type A Returns result of type B May throw exception of type X Class contains applyall method Accept argument of type List<A> Returns result of type List<B> May throw exception of type X Invokes apply on each element in argument list to produce result list 15
16 9.3 Function pattern Main method defines three objects 1. length of type Function<String, Integer, Error> Accepts String Returns integer (Length of given String) Since it raises no checked exceptions, the third is set to error (Could be set to RuntimeException) 2. forname of type Function<String, Class<?>, ClassnotFoundException> Accepts String Returns a class named by given String Apply may throw ClassNotFoundException, which is given as the third parameter 3. getrunmethod of type Function<String, Method, Exception> Accepts String Returns a method named run in the class named by the given String Body of the method might raise a ClassNotFoundException or NoSuchMethodException, so third parameter is taken to be Exception. 16
17 9.3 Function pattern Last example shows chief limitations of giving generics types to exception Often no suitable class or interface that contains all exceptions the function may raise. Forced to fall back on Exception To general to provide useful information 17
18 9.3 Function pattern % Typical run of code in example 5: % java Functions java.lang.thread java.lang.runnable [16, 18] [class java.lang.thread, interface java.lang.runnable] [public void java.lang.thread.run(), public abstract void java.lang.runnable.run()] % java Functions java.lang.thread java.util.list [16, 14] [class java.lang.thread, interface java.util.list] java.lang.nosuchmethodexception: java.util.list.run() % java Functions java.lang.thread Inf329 [16, 6] java.lang.classnotfoundexception: Inf329 java.lang.classnotfoundexception: Inf329 18
19 9.4 Strategy pattern Used to decouple a method from an object Allowing to supply many possible instances of the method Illustrated by considering how tax payers may apply different tax strategies A hierarchy for tax payers and a related hierarchy for tax strategies One default strategy applies to any tax payer One subclass of tax payer is a trust One subclass of default strategy applies only to trust 19
20 9.4 Strategy pattern Example illustrate use of type variables with recursive bounds Applied to clarify the connection between tax payer and associated tax strategies Example also illustrate use of getthis, which allows programmer to assign more precise type to this when type variables with recursive bounds appear See example 6. 20
21 9.4 Strategy pattern Generics allows programmer to specialize a given tax strategy to a given type of tax payer compiler to detect when a strategy is applied to the wrong type of tax payer e.g truststrategy.computetax(person); //compile-time error Without generics computetax would have to accept an argument of type TaxPayer and cast it to trust, and exception would be thrown at run-time 21
22 9.4 Strategy pattern Example illustrates structuring technique of parallel class hierarchies One class hierarchy consist of TaxPayer, Person and Trust A parallel class hierarchy consist of strategies corresponding to each off these DefaultTaxStrategy and DodgingTaxStrategy apply to any Taxpayer No specialized strategy apply to Person TrustTaxStrategy specialized for Trust 22
23 9.4 Strategy pattern Usually, some connection between such parallel hierarchies In this case, computetax method for a TaxStrategy that is parallel to a given Taxpayer expects an argument that is of the corresponding type e.g. computetax method for TrustTaxStrategy expects argument of type Trust With generics, this connection can be captured in the types themselves e.g. TaxStrategy<P> expects an argument of type P, where P must be subclass of TaxPayer By using this technique, generics can often be used to capture similar relations in other parallel hierarchies 23
24 9.4 Strategy pattern In example, instead of this we use a method called getthis Used because this doesn t have type P e.g. Person extends TaxPayer<Person>, so P is the same as Person within the class In fact, this will have the same type as P, but the compiler doesn't know that Returns the same value as this, but gives it the type P Declared abstract in the base class Because it declares the type for getthis, but doesn't declare the body Body declared in the final subclasses Person and Trust Useful in situations whenever one wants to use this in the base type with more specific type provided by the type parameter 24
25 9.5 Subject-Observer pattern Like strategy pattern, the Subject-Observer (SO) pattern uses parallel class hierarchies, but requires two type variables with recursive bounds One to stand for the specific kind of subject One to stand for the specific kind of observer The java library implements a nongeneric version of SO in the package java.util with the class Observable and the interface Observer Observable class contains methods to register observers, to indicate that observable has changed and to notify all observers of any changes among others 25
26 9.5 Subject-Observer pattern The Observer interface specifies the update method that is called by notifyobservers Takes two parameters 1. Observable The subject that has changed 2. Object The broadcast argument The appearance of Object indicates an opportunity to generify Should be generefied by adding type parameter A, corresponding to the argument type Observable and Observer can be replaced with type parameters S and O Within the update method of the observer, the programmer may call on any method supported by the subject S without first requirig a cast 26
27 9.5 - Subject-Observer pattern /* Observable and observer before generics */ package java util; public class Observable { pulic void addobserver(observer O){ protected void clearchanged(){ public int countobservers(){ public void deleteobserver(observer O){ public boolean haschanged(){ public void notifyobservers(){ public boid notifyobservers(object arg){ protected void setchanged(){ package java.util; public interface Observer { public void update(observable o, Object arg); 27
28 9.5 - Subject-Observer pattern /* Observable with generics */ package java.util; class StubException extends UnsupportedOperationException { public class Observable<S extends Observable<S, O, A>, O extends Observer<S, O, A>, A> { public void addobserver(o o){throw new StubException(); protected void clearchanged(){ throw new StubException(); public int countobservers(){ throw new StubException(); public void deleteobserver(o o){throw new StubException(); public boolean haschanged(){throw new StubException(); public void notifyobservers(){throw new StubException(); public void notifyobservers(a a){ throw new StubException(); protected void setchanged(){throw new StubException(); 28
29 9.5 - Subject-Observer pattern /* Observer with generics */ package java.util; public interface Observer<S extends Observable<S, O, A>, O extends Observer<S, O, A>, A> { public void update(s o, A a); 29
30 9.5 Subject-Observer pattern As an example, a currency converter is presented The converter allows to enter conversion rates for three currencies Changing the entry for a rate, causes the corresponding value to be recomputed Changing the entry for a value, causes all the values to be recomputed The client instantiates the pattern by Declaring CModel to be a subclass of Observable Declaring CView to be a subinterface of Observer Instantiates the argument type to Currency 30
31 9.5 Subject-Observer pattern CModel class invokes the update method of RateView whenever a rate is changed, Passing the corresponding currency as the argument Invokes the update method of ValueView whenever a value is changed, passing null as the argument See example 7. 31
32 //End of chapter 9
Outline. CS6202 Java Generics 1
Outline Overview Subtyping and Wildcard Comparison and Bounds Declaration and Erasure Reification and Reflection Collections Iterator, Iterable, Collection Set, Queues, List, Maps Design Patterns Other
More informationOutline. Iterator/Iterable. Main Interface s for Collections
Outline Overview Subtyping and Wildcard Comparison and Bounds Declaration and Erasure Reification and Reflection Collections Iterator, Iterable, Collection Set, Queues, List, Maps Design Patterns Other
More informationIT 313 Advanced Application Development
Page 1 of 10 IT 313 Advanced Application Development Final Exam -- March 13, 2016 Part A. Multiple Choice Questions. Answer all questions. You may supply a reason or show work for partial credit. 5 points
More informationENGLISH Page 1 of 6. EXAM IN COURSE TDT4100 Object-Oriented Programming / IT1104 Programming, Advanced Course. Tuesday 29. Mai
ENGLISH Page 1 of 6 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap EXAM IN COURSE
More informationAP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS
AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this
More informationJava Security. Compiler. Compiler. Hardware. Interpreter. The virtual machine principle: Abstract Machine Code. Source Code
Java Security The virtual machine principle: Source Code Compiler Abstract Machine Code Abstract Machine Code Compiler Concrete Machine Code Input Hardware Input Interpreter Output 236 Java programs: definitions
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationException Handling. Sometimes when the computer tries to execute a statement something goes wrong:
Exception Handling Run-time errors The exception concept Throwing exceptions Handling exceptions Declaring exceptions Creating your own exception Ariel Shamir 1 Run-time Errors Sometimes when the computer
More informationException Handling. Run-time Errors. Methods Failure. Sometimes when the computer tries to execute a statement something goes wrong:
Exception Handling Run-time errors The exception concept Throwing exceptions Handling exceptions Declaring exceptions Creating your own exception 22 November 2007 Ariel Shamir 1 Run-time Errors Sometimes
More informationChapter 12 Exception Handling
Chapter 12 Exception Handling 1 Motivations Goal: Robust code. When a program runs into a runtime error, the program terminates abnormally. How can you handle the runtime error so that the program can
More informationCS115. Chapter 17 Exception Handling. Prof. Joe X. Zhou Department of Computer Science. To know what is exception and what is exception handling
CS115 Pi Principles i of fcomputer Science Chapter 17 Exception Handling Prof. Joe X. Zhou Department of Computer Science CS115 ExceptionHandling.1 Objectives in Exception Handling To know what is exception
More informationChapter 5 Object-Oriented Programming
Chapter 5 Object-Oriented Programming Develop code that implements tight encapsulation, loose coupling, and high cohesion Develop code that demonstrates the use of polymorphism Develop code that declares
More informationCOMP 213. Advanced Object-oriented Programming. Lecture 17. Exceptions
COMP 213 Advanced Object-oriented Programming Lecture 17 Exceptions Errors Writing programs is not trivial. Most (large) programs that are written contain errors: in some way, the program doesn t do what
More informationCSC System Development with Java. Exception Handling. Department of Statistics and Computer Science. Budditha Hettige
CSC 308 2.0 System Development with Java Exception Handling Department of Statistics and Computer Science 1 2 Errors Errors can be categorized as several ways; Syntax Errors Logical Errors Runtime Errors
More informationIntroduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of
Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt Dr.
More informationare most specifically concerned with
Observer Behavioral Patterns Behavioral patterns are those patterns that are most specifically concerned with communication between objects Introduction Name Observer Also Known As Dependents, Publish-Subscribe
More informationPolymorphism. return a.doublevalue() + b.doublevalue();
Outline Class hierarchy and inheritance Method overriding or overloading, polymorphism Abstract classes Casting and instanceof/getclass Class Object Exception class hierarchy Some Reminders Interfaces
More informationObserver Pattern. CS580 Advanced Software Engineering October 31, Yu Sun, Ph.D.
Observer Pattern CS580 Advanced Software Engineering http://cs356.yusun.io October 31, 2014 Yu Sun, Ph.D. http://yusun.io yusun@csupomona.edu Announcements Quiz 5 Singleton Pattern Abstract Factory Pattern
More informationEXAMPLE ANSWERS. EXAM IN COURSE TDT4100 Object-Oriented Programming / IT1104 Programming, Advanced Course. Tuesday 29. Mai
ENGLISH Page 1 of 15 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap EXAMPLE ANSWERS
More informationSubclassing for ADTs Implementation
Object-Oriented Design Lecture 8 CS 3500 Fall 2009 (Pucella) Tuesday, Oct 6, 2009 Subclassing for ADTs Implementation An interesting use of subclassing is to implement some forms of ADTs more cleanly,
More informationCSE 413 Winter 2001 Midterm Exam
Name ID # Score 1 2 3 4 5 6 7 8 There are 8 questions worth a total of 75 points. Please budget your time so you get to all of the questions. Keep your answers brief and to the point. You may refer to
More informationObject-Oriented Design Lecture 14 CSU 370 Fall 2007 (Pucella) Friday, Nov 2, 2007
Object-Oriented Design Lecture 14 CSU 370 Fall 2007 (Pucella) Friday, Nov 2, 2007 (These notes are very rough, and differ somewhat from what I presented in class; I am posting them here to supplemental
More informationGood Luck! CSC207, Fall 2012: Quiz 3 Duration 25 minutes Aids allowed: none. Student Number: Lecture Section: L0101. Instructor: Horton
CSC207, Fall 2012: Quiz 3 Duration 25 minutes Aids allowed: none Student Number: Last Name: Lecture Section: L0101 First Name: Instructor: Horton Please fill out the identification section above as well
More information1 Shyam sir JAVA Notes
1 Shyam sir JAVA Notes 1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write
More informationBinghamton University. CS-140 Fall Problem Solving. Creating a class from scratch
Problem Solving Creating a class from scratch 1 Recipe for Writing a Class 1. Write the class boilerplate stuff 2. Declare Fields 3. Write Creator(s) 4. Write accessor methods 5. Write mutator methods
More informationComputational Expression
Computational Expression Variables, Primitive Data Types, Expressions Janyl Jumadinova 28-30 January, 2019 Janyl Jumadinova Computational Expression 28-30 January, 2019 1 / 17 Variables Variable is a name
More informationChapter 13 Exception Handling
Chapter 13 Exception Handling 1 Motivations When a program runs into a runtime error, the program terminates abnormally. How can you handle the runtime error so that the program can continue to run or
More informationCSE 431S Type Checking. Washington University Spring 2013
CSE 431S Type Checking Washington University Spring 2013 Type Checking When are types checked? Statically at compile time Compiler does type checking during compilation Ideally eliminate runtime checks
More informationBBM 102 Introduction to Programming II Spring Exceptions
BBM 102 Introduction to Programming II Spring 2018 Exceptions 1 Today What is an exception? What is exception handling? Keywords of exception handling try catch finally Throwing exceptions throw Custom
More informationConversions and Casting
Conversions and Casting Taken and modified slightly from the book The Java TM Language Specification, Second Edition. Written by Sun Microsystems. Conversion of one reference type to another is divided
More informationClasses and Objects 3/28/2017. How can multiple methods within a Java class read and write the same variable?
Peer Instruction 8 Classes and Objects How can multiple methods within a Java class read and write the same variable? A. Allow one method to reference a local variable of the other B. Declare a variable
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 04: Exception Handling MOUNA KACEM mouna@cs.wisc.edu Spring 2018 Creating Classes 2 Introduction Exception Handling Common Exceptions Exceptions with Methods Assertions
More informationLe L c e t c ur u e e 5 To T p o i p c i s c t o o b e b e co c v o e v r e ed e Exception Handling
Course Name: Advanced Java Lecture 5 Topics to be covered Exception Handling Exception HandlingHandlingIntroduction An exception is an abnormal condition that arises in a code sequence at run time A Java
More informationObject Oriented Programming Exception Handling
Object Oriented Programming Exception Handling Budditha Hettige Department of Computer Science Programming Errors Types Syntax Errors Logical Errors Runtime Errors Syntax Errors Error in the syntax of
More informationComp215: Thinking Generically
Comp215: Thinking Generically Dan S. Wallach (Rice University) Copyright 2015, Dan S. Wallach. All rights reserved. Functional APIs On Wednesday, we built a list of Objects. This works. But it sucks. class
More informationFundamentals of Object Oriented Programming
INDIAN INSTITUTE OF TECHNOLOGY ROORKEE Fundamentals of Object Oriented Programming CSN- 103 Dr. R. Balasubramanian Associate Professor Department of Computer Science and Engineering Indian Institute of
More informationJava Bytecode (binary file)
Java is Compiled Unlike Python, which is an interpreted langauge, Java code is compiled. In Java, a compiler reads in a Java source file (the code that we write), and it translates that code into bytecode.
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 04: Exception Handling MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Creating Classes 2 Introduction Exception Handling Common Exceptions Exceptions with Methods Assertions and
More informationWeiss Chapter 1 terminology (parenthesized numbers are page numbers)
Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement
More information3. Java - Language Constructs I
Educational Objectives 3. Java - Language Constructs I Names and Identifiers, Variables, Assignments, Constants, Datatypes, Operations, Evaluation of Expressions, Type Conversions You know the basic blocks
More informationQUIZ 2 Introduction to Computer Science (COMP 250) Mon. March 2, 2009 Professor Michael Langer
QUIZ 2 Introduction to Computer Science (COMP 250) Mon. March 2, 2009 Professor Michael Langer STUDENT NAME: ID: The exam consists of five questions. There are a total of 10 points. You may use the back
More informationINDEX. A SIMPLE JAVA PROGRAM Class Declaration The Main Line. The Line Contains Three Keywords The Output Line
A SIMPLE JAVA PROGRAM Class Declaration The Main Line INDEX The Line Contains Three Keywords The Output Line COMMENTS Single Line Comment Multiline Comment Documentation Comment TYPE CASTING Implicit Type
More information6. Parametric Types and Virtual Types
6. Parametric Types and Virtual Types For many programming scenarios, subtype polymorphism is not the best choice. Often more precise type systems are desirable: Types with parameters Specialization of
More informationSyllabus & Curriculum for Certificate Course in Java. CALL: , for Queries
1 CONTENTS 1. Introduction to Java 2. Holding Data 3. Controllin g the f l o w 4. Object Oriented Programming Concepts 5. Inheritance & Packaging 6. Handling Error/Exceptions 7. Handling Strings 8. Threads
More informationCS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question)
CS/B.TECH/CSE(New)/SEM-5/CS-504D/2013-14 2013 OBJECT ORIENTED PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give their answers
More informationB2.52-R3: INTRODUCTION TO OBJECT ORIENTATED PROGRAMMING THROUGH JAVA
B2.52-R3: INTRODUCTION TO OBJECT ORIENTATED PROGRAMMING THROUGH JAVA NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE
More informationCasting -Allows a narrowing assignment by asking the Java compiler to "trust us"
Primitives Integral types: int, short, long, char, byte Floating point types: double, float Boolean types: boolean -passed by value (copied when returned or passed as actual parameters) Arithmetic Operators:
More informationCS 61B Discussion 5: Inheritance II Fall 2014
CS 61B Discussion 5: Inheritance II Fall 2014 1 WeirdList Below is a partial solution to the WeirdList problem from homework 3 showing only the most important lines. Part A. Complete the implementation
More informationCasting. References. References
Casting February 2, 2018 1 References Let A be a class and B be a subclass of A. A reference variable of type A may refer to an object of type either A or B. A reference variable of type B may refer to
More informationCS/ENGRD 2110 SPRING Lecture 7: Interfaces and Abstract Classes
CS/ENGRD 2110 SPRING 2019 Lecture 7: Interfaces and Abstract Classes http://courses.cs.cornell.edu/cs2110 1 Announcements 2 A2 is due Thursday night (14 February) Go back to Lecture 6 & discuss method
More informationOOPs Concepts. 1. Data Hiding 2. Encapsulation 3. Abstraction 4. Is-A Relationship 5. Method Signature 6. Polymorphism 7. Constructors 8.
OOPs Concepts 1. Data Hiding 2. Encapsulation 3. Abstraction 4. Is-A Relationship 5. Method Signature 6. Polymorphism 7. Constructors 8. Type Casting Let us discuss them in detail: 1. Data Hiding: Every
More informationReview: Array Initializer Lists
More on Arrays Review of Arrays of ints, doubles, chars Arrays of objects Command line arguments The ArrayList class Javadoc Review Lecture 8 notes and L&L 7.1 7.2 Reading for this lecture: L&L 7.3 7.7,
More informationCSCI 135 Exam #2 Fundamentals of Computer Science I Fall 2013
CSCI 135 Exam #2 Fundamentals of Computer Science I Fall 2013 Name: This exam consists of 6 problems on the following 6 pages. You may use your two-sided hand-written 8 ½ x 11 note sheet during the exam.
More informationChapter 9. Exception Handling. Copyright 2016 Pearson Inc. All rights reserved.
Chapter 9 Exception Handling Copyright 2016 Pearson Inc. All rights reserved. Last modified 2015-10-02 by C Hoang 9-2 Introduction to Exception Handling Sometimes the best outcome can be when nothing unusual
More informationChapter 4 Defining Classes I
Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the
More informationCS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University
9/5/6 CS Introduction to Computing II Wayne Snyder Department Boston University Today: Arrays (D and D) Methods Program structure Fields vs local variables Next time: Program structure continued: Classes
More informationUNIVERSITI TEKNOLOGI MALAYSIA FINAL EXAMINATION SEMESTER II, 2016 / 2017
SULIT Faculty of Computing SUBJECT CODE SUBJECT NAME YEAR/COURSE TIME DATE : VENUE : : SCSJ2154 : OBJECT ORIENTED PROGRAMMING : 2 (SCSJ / SCSV / SCSB / SCSR) : 1½ Hours INSTRUCTIONS : This test book consists
More informationChapter 1 Getting Started
Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different
More informationCSCI-142 Exam 1 Review September 25, 2016 Presented by the RIT Computer Science Community
CSCI-12 Exam 1 Review September 25, 2016 Presented by the RIT Computer Science Community http://csc.cs.rit.edu 1. Provide a detailed explanation of what the following code does: 1 public boolean checkstring
More informationChapter 11: Collections and Maps
Chapter 11: Collections and Maps Implementing the equals(), hashcode() and compareto() methods A Programmer's Guide to Java Certification (Second Edition) Khalid A. Mughal and Rolf W. Rasmussen Addison-Wesley,
More informationClass, Variable, Constructor, Object, Method Questions
Class, Variable, Constructor, Object, Method Questions http://www.wideskills.com/java-interview-questions/java-classes-andobjects-interview-questions https://www.careerride.com/java-objects-classes-methods.aspx
More informationOperators and Expressions
Operators and Expressions Conversions. Widening and Narrowing Primitive Conversions Widening and Narrowing Reference Conversions Conversions up the type hierarchy are called widening reference conversions
More informationCISC 3115 Modern Programming Techniques Spring 2018 Section TY3 Exam 2 Solutions
Name CISC 3115 Modern Programming Techniques Spring 2018 Section TY3 Exam 2 Solutions 1. a. (25 points) A rational number is a number that can be represented by a pair of integers a numerator and a denominator.
More informationArrays. Outline 1/7/2011. Arrays. Arrays are objects that help us organize large amounts of information. Chapter 7 focuses on:
Arrays Arrays Arrays are objects that help us organize large amounts of information Chapter 7 focuses on: array declaration and use bounds checking and capacity arrays that store object references variable
More informationLecture 19 Programming Exceptions CSE11 Fall 2013
Lecture 19 Programming Exceptions CSE11 Fall 2013 When Things go Wrong We've seen a number of run time errors Array Index out of Bounds e.g., Exception in thread "main" java.lang.arrayindexoutofboundsexception:
More informationPrinciples of Software Construction: Objects, Design, and Concurrency. Objects (continued) toad. Spring J Aldrich and W Scherlis
Principles of Software Construction: Objects, Design, and Concurrency Objects (continued) toad Spring 2012 Jonathan Aldrich Charlie Garrod School of Computer Science 2012 J Aldrich and W Scherlis Announcements
More informationinterface MyAnno interface str( ) val( )
Unit 4 Annotations: basics of annotation-the Annotated element Interface. Using Default Values, Marker Annotations. Single-Member Annotations. The Built-In Annotations-Some Restrictions. 1 annotation Since
More informationC# Programming for Developers Course Labs Contents
C# Programming for Developers Course Labs Contents C# Programming for Developers...1 Course Labs Contents...1 Introduction to C#...3 Aims...3 Your First C# Program...3 C# The Basics...5 The Aims...5 Declaring
More informationTraining topic: OCPJP (Oracle certified professional Java programmer) or SCJP (Sun certified Java programmer) Content and Objectives
Training topic: OCPJP (Oracle certified professional Java programmer) or SCJP (Sun certified Java programmer) Content and Objectives 1 Table of content TABLE OF CONTENT... 2 1. ABOUT OCPJP SCJP... 4 2.
More informationTeenCoder : Java Programming (ISBN )
TeenCoder : Java Programming (ISBN 978-0-9887070-2-3) and the AP * Computer Science A Exam Requirements (Alignment to Tennessee AP CS A course code 3635) Updated March, 2015 Contains the new 2014-2015+
More informationCSCI 135 Exam #2 Fundamentals of Computer Science I Fall 2013
CSCI 135 Exam #2 Fundamentals of Computer Science I Fall 2013 Name: This exam consists of 6 problems on the following 6 pages. You may use your two-sided hand-written 8 ½ x 11 note sheet during the exam.
More informationHomework 6. What To Turn In. Reading. Problems. Handout 15 CSCI 334: Spring, 2017
Homework 6 Due 11 April Handout 15 CSCI 334: Spring, 2017 What To Turn In Please hand in work in two pieces, one for the Problems and one for the Programming (Partner Optional): Problems: Turn in handwritten
More informationF I N A L E X A M I N A T I O N
Faculty Of Computer Studies M257 Putting Java to Work F I N A L E X A M I N A T I O N Number of Exam Pages: (including this cover sheet( Spring 2011 April 4, 2011 ( 5 ) Time Allowed: ( 1.5 ) Hours Student
More informationPace University. Fundamental Concepts of CS121 1
Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction
More informationArray. Prepared By - Rifat Shahriyar
Java More Details Array 2 Arrays A group of variables containing values that all have the same type Arrays are fixed length entities In Java, arrays are objects, so they are considered reference types
More informationGraphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub
Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java
More informationCS506 Web Design & Development Final Term Solved MCQs with Reference
with Reference I am student in MCS (Virtual University of Pakistan). All the MCQs are solved by me. I followed the Moaaz pattern in Writing and Layout this document. Because many students are familiar
More informationCS159. Nathan Sprague
CS159 Nathan Sprague What s wrong with the following code? 1 /* ************************************************** 2 * Return the mean, or -1 if the array has length 0. 3 ***************************************************
More informationAssigned Date: August 27, 2014 Due Date: September 7, 2015, 11:59 PM
15440: Distributed Systems Fall 2015 Problem Solving Assignment 1 A Java Programming Preparation for Project 1 Assigned Date: August 27, 2014 Due Date: September 7, 2015, 11:59 PM 1. Warm Up with Some
More informationPolymorphism. CMSC 330: Organization of Programming Languages. Two Kinds of Polymorphism. Polymorphism Overview. Polymorphism
CMSC 330: Organization of Programming Languages Polymorphism Polymorphism Definition Feature that allows values of different data types to be handled using a uniform interface Applicable to Functions Ø
More informationInput-Output and Exception Handling
Software and Programming I Input-Output and Exception Handling Roman Kontchakov / Carsten Fuhs Birkbeck, University of London Outline Reading and writing text files Exceptions The try block catch and finally
More informationCSci 4223 Lecture 18 April 3, 2013 Topics: OOP vs. FP
CSci 4223 Lecture 18 April 3, 2013 Topics: OOP vs. FP 1 Object-oriented programming vs. functional programming We ve now seen the core features of both OOP and FP. Let s compare the two paradigms, and
More informationJava Programming Course Overview. Duration: 35 hours. Price: $900
978.256.9077 admissions@brightstarinstitute.com Java Programming Duration: 35 hours Price: $900 Prerequisites: Basic programming skills in a structured language. Knowledge and experience with Object- Oriented
More informationHere is a hierarchy of classes to deal with Input and Output streams.
PART 15 15. Files and I/O 15.1 Reading and Writing Files A stream can be defined as a sequence of data. The InputStream is used to read data from a source and the OutputStream is used for writing data
More informationJava Inheritance. Written by John Bell for CS 342, Spring Based on chapter 6 of Learning Java by Niemeyer & Leuck, and other sources.
Java Inheritance Written by John Bell for CS 342, Spring 2018 Based on chapter 6 of Learning Java by Niemeyer & Leuck, and other sources. Review Which of the following is true? A. Java classes may either
More informationSYLLABUS JAVA COURSE DETAILS. DURATION: 60 Hours. With Live Hands-on Sessions J P I N F O T E C H
JAVA COURSE DETAILS DURATION: 60 Hours With Live Hands-on Sessions J P I N F O T E C H P U D U C H E R R Y O F F I C E : # 4 5, K a m a r a j S a l a i, T h a t t a n c h a v a d y, P u d u c h e r r y
More informationCOS 126 Midterm 1 Written Exam Fall 2012
Name:!! Login ID:!!! Precept: COS 126 Midterm 1 Written Exam Fall 2012 is test has 8 questions, weighted as indicated. e exam is closed book, except that you are allowed to use a one page single-sided
More informationJava Class Loading and Bytecode Verification
Java Class Loading and Bytecode Verification Every object is a member of some class. The Class class: its members are the (definitions of) various classes that the JVM knows about. The classes can be dynamically
More informationException-Handling Overview
م.عبد الغني أبوجبل Exception Handling No matter how good a programmer you are, you cannot control everything. Things can go wrong. Very wrong. When you write a risky method, you need code to handle the
More informationCSC 1351: Quiz 6: Sort and Search
CSC 1351: Quiz 6: Sort and Search Name: 0.1 You want to implement combat within a role playing game on a computer. Specifically, the game rules for damage inflicted by a hit are: In order to figure out
More informationExceptions, try - catch - finally, throws keyword. JAVA Standard Edition
Exceptions, try - catch - finally, throws keyword JAVA Standard Edition Java - Exceptions An exception (or exceptional event) is a problem that arises during the execution of a program. When an Exception
More informationCompuScholar, Inc. 9th - 12th grades
CompuScholar, Inc. Alignment to the College Board AP Computer Science A Standards 9th - 12th grades AP Course Details: Course Title: Grade Level: Standards Link: AP Computer Science A 9th - 12th grades
More informationCOE318 Lecture Notes Week 10 (Nov 7, 2011)
COE318 Software Systems Lecture Notes: Week 10 1 of 5 COE318 Lecture Notes Week 10 (Nov 7, 2011) Topics More about exceptions References Head First Java: Chapter 11 (Risky Behavior) The Java Tutorial:
More informationCS 231 Data Structures and Algorithms, Fall 2016
CS 231 Data Structures and Algorithms, Fall 2016 Dr. Bruce A. Maxwell Department of Computer Science Colby College Course Description Focuses on the common structures used to store data and the standard
More informationThe Sun s Java Certification and its Possible Role in the Joint Teaching Material
The Sun s Java Certification and its Possible Role in the Joint Teaching Material Nataša Ibrajter Faculty of Science Department of Mathematics and Informatics Novi Sad 1 Contents Kinds of Sun Certified
More informationCS260 Intro to Java & Android 03.Java Language Basics
03.Java Language Basics http://www.tutorialspoint.com/java/index.htm CS260 - Intro to Java & Android 1 What is the distinction between fields and variables? Java has the following kinds of variables: Instance
More informationLecture 8: Recursion and Iteration. Exceptions. Declarative Programming.
Lecture 8: Recursion and Iteration. Exceptions. Declarative Programming. September 26th, 2010 Lecture 8: Recursion and Iteration. Exceptions. Declarative Programming. (1/48) Lecture Outline Memory Management,
More information3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.
3.Constructors and Destructors Develop cpp program to implement constructor and destructor. Constructors A constructor is a special member function whose task is to initialize the objects of its class.
More informationF1 A Java program. Ch 1 in PPIJ. Introduction to the course. The computer and its workings The algorithm concept
F1 A Java program Ch 1 in PPIJ Introduction to the course The computer and its workings The algorithm concept The structure of a Java program Classes and methods Variables Program statements Comments Naming
More informationInterfaces. James Brucker
Interfaces James Brucker What is an Interface? An interface is a specification of (1) a required behavior any class that claims to "implement" the interface must perform the behavior (2) constant data
More information