Metamodelling and Metaprogramming
|
|
- Samuel Allison
- 6 years ago
- Views:
Transcription
1 Software aus Komponenten (Component-Based Software, CBSE) SS 2004 Exercise Sheet No. 1 Prof. Dr. rer. nat. U. Aßmann TU Dresden Lehrstuhl Softwaretechnologie The electronic version of this exercise sheet is available under TDDBC18. Metamodelling and Metaprogramming Task 1: Reflection in Java (9 Points) 1a) (3 pt.) Task: Write a program that reads the name of a class from the command line and emits the interface of the class in Java syntax (interface or class, modifiers, constructors, methods, fields, empty method bodies). Also use the program for itself. Hints: Load a class with java.lang.class.forname(). Solution: The class is: /** * InterfaceDumper.java */ import java.lang.reflect.*; import java.io.printstream; public class InterfaceDumper { /** The output stream */ private PrintStream out; /** Create a new signature dumper */ public InterfaceDumper() { out = System.out; /** Set an alternative output stream (Default: System.out) */ public void setprintstream(printstream p) { out = p; /** Dump a class signature to the output stream */ public void dump(class c) { boolean isaninterface = c.isinterface(); 1
2 String interfaceinheritanceclause = ""; // dump class or interface if (isaninterface) { out.print("interface "); interfaceinheritanceclause = "extends "; else { out.print("class "); interfaceinheritanceclause = "implements "; // dump name: out.println(c.getname()); // dump modifiers: out.println("modifiers: "+ Modifier.toString(c.getModifiers())); // dump inheritance relations Class sc = c.getsuperclass(); if(sc!= null && sc!= Object.class) out.println("extends " + sc.getname()); Class[] ifs = c.getinterfaces(); if(ifs.length > 0) { out.print(interfaceinheritanceclause); for(int i = 0; i < ifs.length; i++) { if(i!= 0) out.print(", "); out.print(ifs[i].getname()); // dump class body: constructors, methods, fields out.println(" {"); out.println(" // Constructors"); Constructor[] cs = c.getdeclaredconstructors(); for(int i = 0; i < cs.length; i++) dump(cs[i]); out.println(""); out.println(" // Methods"); Method[] ms = c.getdeclaredmethods(); for(int i = 0; i < ms.length; i++) dump(ms[i]); out.println(""); out.println(" // Fields"); Field[] fs = c.getdeclaredfields(); for(int i = 0; i < fs.length; i++) dump(fs[i]); out.println(""); 2
3 out.println(""); /** Dump a constructor signature to the output stream */ public void dump(constructor c) { out.println(" " + c.tostring() + ";"); /** Dump a method signature to the output stream */ public void dump(method m) { out.println(" " + m.tostring() + ";"); /** Dump a field signature to the output stream */ public void dump(field f) { out.println(" " + f.tostring() + ";"); public static void main(string[] argv) throws Throwable { InterfaceDumper id = new InterfaceDumper(); for(int i = 0; i < argv.length; i++) { Class c = Class.forName(argv[i]); id.dump(c); Here follows a test input: interface TestSuperI { int getcontent(); void setcontent(int val); interface TestI extends TestSuperI { void changecontent(); abstract class TestSuper implements TestI { protected int content; protected TestSuper() { content = 0; public int getcontent() { return content; public void setcontent(int val) { content = val; abstract public void changecontent(); 3
4 public class InterfaceTest extends TestSuper implements TestI { public void changecontent() { content += 42; Can be called as java InterfaceDumper InterfaceDumper 1b) (3 pt.) Task: Now write a program that reads a class name, reads a list of arguments from the command line, and creates an object of that class with the read arguments. Treat arguments as strings. A java.lang.class can enumerate its constructors. Choose a constructor with the appropriate parameter count. Then, find the parameter types. To create typed argument objects, call the appropriate constructors that take a string as arguments. Call dynamic constructors by java.lang.reflect.constructor.newinstance(). Solution: /** * DynamicConstructor.java * */ import java.lang.reflect.*; public class DynamicConstructor { protected Class c; /** create a new dynamic constructor for the given class */ public DynamicConstructor(Class c) { this.c = c; /** invoke the constructor with the given arguments dynamically */ public Object newinstance(string[] args) throws Throwable { Constructor[] cs = c.getconstructors(); for(int i = 0; i < cs.length; i++) { Constructor co = cs[i]; Class[] params = co.getparametertypes(); if(params.length == args.length) { Object[] typedargs = convertargs(args, params); return co.newinstance(typedargs); throw new RuntimeException("No suitable constructor found:" + c.getname()); 4
5 /** convert the string arguments to parameter types */ Object[] convertargs(string[] args, Class[] paramtypes) throws Throwable { Object[] res = new Object[args.length]; for(int i = 0; i < args.length; i++) res[i] = convertarg(args[i], paramtypes[i]); return res; /** convert a string argument to parameter types */ Object convertarg(string arg, Class paramtype) throws Throwable { // conversion necessary? if(paramtype.isinstance(arg)) return arg; // find suitable constructor and convert. Constructor[] cs = paramtype.getconstructors(); for(int i = 0; i < cs.length; i++) { Constructor co = cs[i]; Class[] params = co.getparametertypes(); if(params.length == 1) { if (params[0].equals(string.class)) { Object[] args = {arg; return co.newinstance(args); if (paramtype.equals(class.class)) return Class.forName(arg); throw new RuntimeException("No suitable constructor found:" + c.getname()); public static void main(string argv[]) throws Throwable { // parse input Class c = Class.forName(argv[0]); String[] cargs = new String[argv.length-1]; System.arraycopy(argv, 1, cargs, 0, argv.length-1); // invoke constructor DynamicConstructor co = new DynamicConstructor(c); Object o = co.newinstance(cargs); System.out.println("Object: " + o); The test input could be: public class ConstructorTest { private int x; private double y; private String z; public ConstructorTest(Integer x) { this(x, new Double(0.0), "leer"); 5
6 public ConstructorTest(Integer x, Double y) { this(x,y,"leer"); public ConstructorTest(Integer x, Double y, String z) { this.x = x.intvalue(); this.y = y.doublevalue(); this.z = z; public String tostring() { return "x = " + x + ", y = " + y + ", z = " + z; The class should be called as java DynamicConstructor ConstructorTest 42 1c) (3 pt.) Task: Extend the solution of the previous task by reading a method name and a list of method arguments. Call the method on a newly created object dynamically. Also call the solution of subtask (a) to emit the interfaces of your solution. Hint: java.lang.class can enumerate its methods. java.lang.reflect.method.invoke() can call methods dynamically. Solution: /** * DynamicInvoker.java * */ import java.lang.reflect.*; public class DynamicInvoker extends DynamicConstructor { /** create a new dynamic invoker for the given object */ public DynamicInvoker(Class c) { super(c); /** invoke the method with the given arguments dynamically */ public Object invoke(object o, String name, String[] args) throws Throwable { Method[] ms = c.getmethods(); for(int i = 0; i < ms.length; i++) { Method m = ms[i]; String n = m.getname(); Class[] params = m.getparametertypes(); if(name.equals(n) && params.length == args.length) { Object[] typedargs = convertargs(args,params); 6
7 return m.invoke(o,typedargs); throw new RuntimeException("No suitable method found:" + c.getname() + "." + name + "()"); public static void main(string argv[]) throws Throwable { // parse input Class c = Class.forName(argv[0]); // determine number of constructor arguments int i = 1; while(!argv[i].equals("-")) i++; // get constructor arguments String[] cargs = new String[i-1]; System.arraycopy(argv,1,cArgs,0,i-1); // get method name String mname = argv[i+1]; // get method arguments String[] margs=new String[argv.length-i-2]; System.arraycopy(argv,i+2,mArgs,0,argv.length-i-2); // invoke constructor DynamicInvoker di = new DynamicInvoker(c); Object o = di.newinstance(cargs); System.out.println("Object: " + o); System.err.println("Invoking method " + mname + " with args " + margs); // invoke method Object res = di.invoke(o, mname, margs); System.out.println("Result: " + res); System.out.println("Object: " + o); Should be called as java DynamicInvoker InterfaceDumper - dump DynamicInvoker Task 2: Basic Definitions of Component Systems (8 Points) 2a) (1 pt.) Task: Define the notion Object. Solution: Objects incorporate both data structure and behaviour. They generally include four aspects: identity, classification, polymorphism, and inheritance (Rumbaugh, et.al.). 7
8 2b) (1 pt.) Task: Define the notion Class. Solution: A class is a modellig item that describes important properties of an application and ignores the rest. It describes a possibly infinite set of individual objects (Rumbaugh, et.al.). 2c) (1 pt.) Task: Define the notion Module. Solution: Every module hides an important design decision behind a well-defined interface which does not change when the decision changes (Parnas). 2d) (1 pt.) Task: Define the notion Type. Solution: A type system is a tractable syntacic method for proving the absence of certain program behaviors by classifying phrases according to the kinds of values they compute (Pierce). 2e) (1 pt.) Task: Define the notion Component. Solution: A component is a unit for composition (Folklore). 2f) (1 pt.) Task: Define the notion creation of a component. Solution: Instantiating a component from a template or pattern. Corresponds to the instantiation of a class to an object. 2g) (1 pt.) Task: Define the notion parameterization of a generic component. Solution: Similarly to the parameterization of a generic class, but may be on a different abstraction level. 2h) (1 pt.) Task: Discuss: Is a generic class a class. Solution: No. The parameterized generic class is a class; the generic class is a template. Task 3: Open and Closed Forms of Components (4 Points) Consider the following Java package hierarchy. package a; public class A {.. ; package a.b; public class A {.. ; package a.b.d; public class A {.. ; package a.c; public class B {.. ; 8
9 3a) (1 pt.) Task: How is the part-of relation expressed in Java packages? Solution: By nesting of the package names and the nesting of their corresponding directories. 3b) (2 pt.) Task: Produce a file with all classes (in one package). What do you have to do with the class names? How is the part-of relationship expressed now? Solution: You have to rename the classes with their packages as prefix. package a; public class a.a {.. ; public class a.b.a {.. ; public class a.b.d.a {.. ; public class a.c.b {.. ; The part-of relationship is now expressed by a structured naming scheme. 3c) (1 pt.) Task: Why are directory hierarchies simple component systems? Solution: Because they express a part-of relationship. Task 4: Knowledge Metaprogramming (8 Points) 4a) (3 pt.) Task: Enumerate and explain several times in system construction. Solution: system generation time. compilation time link time. allocation time. run time reconfiguration time recomposition time 4b) (3 pt.) Task: Explain the difference between static and dynamic metaprogramming. Solution: Dynamic metaprogramming involves runtime generation of code, followed by its evaluation. Static metaprograming generates code at compile time (or before compile, at system generation time) and removes all metaprograms before run time. 4c) (2 pt.) Task: What is the difference between reflection in Java and dynamic metaprogramming? Solution: Java reflection is a restricted form of dynamic metaprogramming. Methods can be compiled and loaded, but there is no metamodel of program elements within a method (no statements, no expressions). 9
Introduction 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 informationReflection. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 28
Reflection Computer Science and Engineering College of Engineering The Ohio State University Lecture 28 Motivating Problem Debugger/visualization tool Takes an object, any object Displays the methods one
More informationChapter 6 Introduction to Defining Classes
Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of
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 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 informationBirkbeck (University of London) Software and Programming 1 In-class Test Mar 2018
Birkbeck (University of London) Software and Programming 1 In-class Test 2.1 22 Mar 2018 Student Name Student Number Answer ALL Questions 1. What output is produced when the following Java program fragment
More informationCHAPTER 7 OBJECTS AND CLASSES
CHAPTER 7 OBJECTS AND CLASSES OBJECTIVES After completing Objects and Classes, you will be able to: Explain the use of classes in Java for representing structured data. Distinguish between objects and
More informationProgramming Languages and Techniques (CIS120)
Programming Languages and Techniques (CIS120) Lecture 26 March 23, 2016 Inheritance and Dynamic Dispatch Chapter 24 Inheritance Example public class { private int x; public () { x = 0; } public void incby(int
More informationInheritance and Polymorphism
Inheritance and Polymorphism Recitation 10/(16,17)/2008 CS 180 Department of Computer Science, Purdue University Project 5 Due Wed, Oct. 22 at 10 pm. All questions on the class newsgroup. Make use of lab
More informationInterview Questions of C++
Interview Questions of C++ Q-1 What is the full form of OOPS? Ans: Object Oriented Programming System. Q-2 What is a class? Ans: Class is a blue print which reflects the entities attributes and actions.
More informationTopic 7: Algebraic Data Types
Topic 7: Algebraic Data Types 1 Recommended Exercises and Readings From Haskell: The craft of functional programming (3 rd Ed.) Exercises: 5.5, 5.7, 5.8, 5.10, 5.11, 5.12, 5.14 14.4, 14.5, 14.6 14.9, 14.11,
More informationInstance Method Development Demo
Instance Method Development Demo Write a class Person with a constructor that accepts a name and an age as its argument. These values should be stored in the private attributes name and age. Then, write
More informationInheritance. Inheritance allows the following two changes in derived class: 1. add new members; 2. override existing (in base class) methods.
Inheritance Inheritance is the act of deriving a new class from an existing one. Inheritance allows us to extend the functionality of the object. The new class automatically contains some or all methods
More informationProgramming Language Concepts: Lecture 10
Programming Language Concepts: Lecture 10 Madhavan Mukund Chennai Mathematical Institute madhavan@cmi.ac.in http://www.cmi.ac.in/~madhavan/courses/pl2009 PLC 2009, Lecture 10, 16 February 2009 Reflection
More informationCHAPTER 7 OBJECTS AND CLASSES
CHAPTER 7 OBJECTS AND CLASSES OBJECTIVES After completing Objects and Classes, you will be able to: Explain the use of classes in Java for representing structured data. Distinguish between objects and
More informationJAVA: A Primer. By: Amrita Rajagopal
JAVA: A Primer By: Amrita Rajagopal 1 Some facts about JAVA JAVA is an Object Oriented Programming language (OOP) Everything in Java is an object application-- a Java program that executes independently
More informationConcepts of Object-Oriented Programming Peter Müller
Concepts of Object-Oriented Programming Peter Müller Chair of Programming Methodology Autumn Semester 2017 1.2 Introduction Core Concepts 2 Meeting the Requirements Cooperating Program Parts with Well-Defined
More informationComputer Science II (20082) Week 1: Review and Inheritance
Computer Science II 4003-232-08 (20082) Week 1: Review and Inheritance Richard Zanibbi Rochester Institute of Technology Review of CS-I Syntax and Semantics of Formal (e.g. Programming) Languages Syntax
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 informationAgenda. Objects and classes Encapsulation and information hiding Documentation Packages
Preliminaries II 1 Agenda Objects and classes Encapsulation and information hiding Documentation Packages Inheritance Polymorphism Implementation of inheritance in Java Abstract classes Interfaces Generics
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 informationC++ (Non for C Programmer) (BT307) 40 Hours
C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular
More informationpublic static boolean isoutside(int min, int max, int value)
See the 2 APIs attached at the end of this worksheet. 1. Methods: Javadoc Complete the Javadoc comments for the following two methods from the API: (a) / @param @param @param @return @pre. / public static
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 informationCH. 2 OBJECT-ORIENTED PROGRAMMING
CH. 2 OBJECT-ORIENTED PROGRAMMING ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN JAVA, GOODRICH, TAMASSIA AND GOLDWASSER (WILEY 2016) OBJECT-ORIENTED
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 informationArchJava A Java Extension for Architecture
ArchJava A Java Extension for Architecture Prof. Dr. Uwe Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik http://www-st.inf.tu-dresden.de Version 08-0.1, May 19, 2008
More informationExample: Count of Points
Example: Count of Points 1 class Point { 2... 3 private static int numofpoints = 0; 4 5 Point() { 6 numofpoints++; 7 } 8 9 Point(int x, int y) { 10 this(); // calling the constructor with no input argument;
More informationCSCE 314 Programming Languages
CSCE 314 Programming Languages! Reflection Dr. Hyunyoung Lee! 1 Reflection and Metaprogramming Metaprogramming: Writing (meta)programs that represent and manipulate other programs Reflection: Writing (meta)programs
More informationLecture 2: Java & Javadoc
Lecture 2: Java & Javadoc CS 62 Fall 2018 Alexandra Papoutsaki & William Devanny 1 Instance Variables or member variables or fields Declared in a class, but outside of any method, constructor or block
More informationUniversity of Cape Town ~ Department of Computer Science. Computer Science 1015F ~ 2007
Name: Please fill in your Student Number and Name. Student Number : Student Number: University of Cape Town ~ Department of Computer Science Computer Science 1015F ~ 2007 Final Examination Question Max
More informationInstance Members and Static Members
Instance Members and Static Members You may notice that all the members are declared w/o static. These members belong to some specific object. They are called instance members. This implies that these
More informationComputer Science II (20073) Week 1: Review and Inheritance
Computer Science II 4003-232-01 (20073) Week 1: Review and Inheritance Richard Zanibbi Rochester Institute of Technology Review of CS-I Hardware and Software Hardware Physical devices in a computer system
More informationMidterm Exam CS 251, Intermediate Programming October 8, 2014
Midterm Exam CS 251, Intermediate Programming October 8, 2014 Name: NetID: Answer all questions in the space provided. Write clearly and legibly, you will not get credit for illegible or incomprehensible
More informationMidterm Exam CS 251, Intermediate Programming March 12, 2014
Midterm Exam CS 251, Intermediate Programming March 12, 2014 Name: NetID: Answer all questions in the space provided. Write clearly and legibly, you will not get credit for illegible or incomprehensible
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 informationProgramming overview
Programming overview Basic Java A Java program consists of: One or more classes A class contains one or more methods A method contains program statements Each class in a separate file MyClass defined in
More informationBackground. Reflection. The Class Class. How Objects Work
Background Reflection Turing's great insight: programs are just another kind of data Source code is text Manipulate it line by line, or by parsing expressions Compiled programs are data, too Integers and
More informationOutline. 15. Inheritance. Programming in Java. Computer Science Dept Va Tech August D Barnette, B Keller & P Schoenhoff
Outline 1 Inheritance: extends ; Superclasses and Subclasses Valid and invalid object states, & Instance variables: protected Inheritance and constructors, super The is-a vs. has-a relationship (Inheritance
More informationFramework Fundamentals
Questions Framework Fundamentals 1. Which of the following are value types? (Choose all that apply.) A. Decimal B. String C. System.Drawing.Point D. Integer 2. Which is the correct declaration for a nullable
More informationAgent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems RMI
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Distributed and Agent Systems RMI Prof. Agostino Poggi What is RMI? Its acronym means Remote
More informationXII- COMPUTER SCIENCE VOL-II MODEL TEST I
MODEL TEST I 1. What is the significance of an object? 2. What are Keyword in c++? List a few Keyword in c++?. 3. What is a Pointer? (or) What is a Pointer Variable? 4. What is an assignment operator?
More informationINTROSPECTION. We need to begin with a more basic concept called type introspection
REFLECTION 1 INTROSPECTION We need to begin with a more basic concept called type introspection The ability of a program to examine the type and properties of an object at runtime A few programming languages
More informationJAVA - FILE CLASS. The File object represents the actual file/directory on the disk. Below given is the list of constructors to create a File object
http://www.tutorialspoint.com/java/java_file_class.htm JAVA - FILE CLASS Copyright tutorialspoint.com Java File class represents the files and directory pathnames in an abstract manner. This class is used
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 informationLanguage Features. 1. The primitive types int, double, and boolean are part of the AP
Language Features 1. The primitive types int, double, and boolean are part of the AP short, long, byte, char, and float are not in the subset. In particular, students need not be aware that strings are
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
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 informationCS Internet programming Unit- I Part - A 1 Define Java. 2. What is a Class? 3. What is an Object? 4. What is an Instance?
CS6501 - Internet programming Unit- I Part - A 1 Define Java. Java is a programming language expressly designed for use in the distributed environment of the Internet. It was designed to have the "look
More information16-Dec-10. Consider the following method:
Boaz Kantor Introduction to Computer Science IDC Herzliya Exception is a class. Java comes with many, we can write our own. The Exception objects, along with some Java-specific structures, allow us to
More informationProgramming Languages and Techniques (CIS120)
Programming Languages and Techniques (CIS120) Lecture 26 November 3, 2017 The Java ASM, Java Generics Chapter 24 Announcements HW7: Chat Server Available on Codio / InstrucNons on the web site Due Tuesday,
More informationLecture Notes CPSC 224 (Spring 2012) Today... Java basics. S. Bowers 1 of 8
Today... Java basics S. Bowers 1 of 8 Java main method (cont.) In Java, main looks like this: public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World!"); Q: How
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 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 information(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days
Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented
More informationOOP: Key Concepts 09/28/2001 1
OOP: Key Concepts Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh spring@imap.pitt.edu http://www.sis.pitt.edu/~spring 09/28/2001 1 Overview of Part
More informationProgramming Exercise 14: Inheritance and Polymorphism
Programming Exercise 14: Inheritance and Polymorphism Purpose: Gain experience in extending a base class and overriding some of its methods. Background readings from textbook: Liang, Sections 11.1-11.5.
More informationExample: Fibonacci Numbers
Example: Fibonacci Numbers Write a program which determines F n, the (n + 1)-th Fibonacci number. The first 10 Fibonacci numbers are 0, 1, 1, 2, 3, 5, 8, 13, 21, and 34. The sequence of Fibonacci numbers
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationJAVA MOCK TEST JAVA MOCK TEST IV
http://www.tutorialspoint.com JAVA MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Java Framework. You can download these sample mock tests at your
More informationKING FAHD UNIVERSITY OF PETROLEUM & MINERALS Information and Computer Science Department
KING FAHD UNIVERSITY OF PETROLEUM & MINERALS Information and Computer Science Department ICS-201 Introduction to Computer Science Lab 03: Java Virtual Machines and Java Packages Objectives: In this lab,
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 informationJava Programming. MSc Induction Tutorials Stefan Stafrace PhD Student Department of Computing
Java Programming MSc Induction Tutorials 2011 Stefan Stafrace PhD Student Department of Computing s.stafrace@surrey.ac.uk 1 Tutorial Objectives This is an example based tutorial for students who want to
More informationCSCI 136 Written Exam #1 Fundamentals of Computer Science II Spring 2015
CSCI 136 Written Exam #1 Fundamentals of Computer Science II Spring 2015 Name: This exam consists of 5 problems on the following 7 pages. You may use your double- sided hand- written 8 ½ x 11 note sheet
More informationCSC 240 Computer Science III Spring 2018 Midterm Exam. Name
CSC 240 Computer Science III Spring 2018 Midterm Exam Name Page Points Score 2 9 4-6 53 7-10 38 Total 100 1 P age 1. Tracing programs (1 point each value): For each snippet of Java code on the left, write
More informationInheritance and Interfaces
Inheritance and Interfaces Object Orientated Programming in Java Benjamin Kenwright Outline Review What is Inheritance? Why we need Inheritance? Syntax, Formatting,.. What is an Interface? Today s Practical
More informationI pledge by honor that I will not discuss this exam with anyone until my instructor reviews the exam in the class.
Name: Covers Chapters 1-3 50 mins CSCI 1301 Introduction to Programming Armstrong Atlantic State University Instructor: Dr. Y. Daniel Liang I pledge by honor that I will not discuss this exam with anyone
More informationUsing APIs. Chapter 3. Outline Fields Overall Layout. Java By Abstraction Chapter 3. Field Summary static double PI
Outline Chapter 3 Using APIs 3.1 Anatomy of an API 3.1.1 Overall Layout 3.1.2 Fields 3.1.3 Methods 3.2 A Development Walkthrough 3.2.1 3.2.2 The Mortgage Application 3.2.3 Output Formatting 3.2.4 Relational
More informationHAS-A Relationship. Association is a relationship where all objects have their own lifecycle and there is no owner.
HAS-A Relationship Association is a relationship where all objects have their own lifecycle and there is no owner. For example, teacher student Aggregation is a specialized form of association where all
More informationOutline. Object-Oriented Design Principles. Object-Oriented Design Goals. What a Subclass Inherits from Its Superclass?
COMP9024: Data Structures and Algorithms Week One: Java Programming Language (II) Hui Wu Session 1, 2014 http://www.cse.unsw.edu.au/~cs9024 Outline Inheritance and Polymorphism Interfaces and Abstract
More informationComp Intermediate Programming EXAM #1 February 16, 2004 Rice University - Instructors: Cox & Nguyen
Instructions 1. This exam is conducted under the Rice Honor Code. It is a closed-notes, closed-book exam. 2. Fill in your name on every page of the exam. 3. If you forget the name of a Java class or method,
More informationOutline. Java Models for variables Types and type checking, type safety Interpretation vs. compilation. Reasoning about code. CSCI 2600 Spring
Java Outline Java Models for variables Types and type checking, type safety Interpretation vs. compilation Reasoning about code CSCI 2600 Spring 2017 2 Java Java is a successor to a number of languages,
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 informationSubclass Gist Example: Chess Super Keyword Shadowing Overriding Why? L10 - Polymorphism and Abstract Classes The Four Principles of Object Oriented
Table of Contents L01 - Introduction L02 - Strings Some Examples Reserved Characters Operations Immutability Equality Wrappers and Primitives Boxing/Unboxing Boxing Unboxing Formatting L03 - Input and
More informationMethod Resolution Approaches. Dynamic Dispatch
Method Resolution Approaches Static - procedural languages (w/o fcn ptrs) Dynamically determined by data values C with function pointers Compile-time analysis can estimate possible callees Dynamically
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 informationDM503 Programming B. Peter Schneider-Kamp.
DM503 Programming B Peter Schneider-Kamp petersk@imada.sdu.dk! http://imada.sdu.dk/~petersk/dm503/! TYPE CASTS & FILES & EXCEPTION HANDLING 2 Type Conversion Java uses type casts for converting values
More informationAtelier Java - J1. Marwan Burelle. EPITA Première Année Cycle Ingénieur.
marwan.burelle@lse.epita.fr http://wiki-prog.kh405.net Plan 1 2 Plan 3 4 Plan 1 2 3 4 A Bit of History JAVA was created in 1991 by James Gosling of SUN. The first public implementation (v1.0) in 1995.
More informationDOWNLOAD PDF CORE JAVA APTITUDE QUESTIONS AND ANSWERS
Chapter 1 : Chapter-wise Java Multiple Choice Questions and Answers Interview MCQs Java Programming questions and answers with explanation for interview, competitive examination and entrance test. Fully
More informationProgramming Kotlin. Familiarize yourself with all of Kotlin s features with this in-depth guide. Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI
Programming Kotlin Familiarize yourself with all of Kotlin s features with this in-depth guide Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI Programming Kotlin Copyright 2017 Packt Publishing First
More informationCS 152: Data Structures with Java Hello World with the IntelliJ IDE
CS 152: Data Structures with Java Hello World with the IntelliJ IDE Instructor: Joel Castellanos e-mail: joel.unm.edu Web: http://cs.unm.edu/~joel/ Office: Electrical and Computer Engineering building
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 informationExercise 12 Initialization December 14, 2018
Concepts of Object-Oriented Programming AS 2018 Exercise 12 Initialization December 14, 2018 Task 1 Consider a class Vector, representing a 2 dimensional vector, written in a Java-like language with non-null
More informationBrief Summary of Java
Brief Summary of Java Java programs are compiled into an intermediate format, known as bytecode, and then run through an interpreter that executes in a Java Virtual Machine (JVM). The basic syntax of Java
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 informationObject Oriented Programming. Solved MCQs - Part 2
Object Oriented Programming Solved MCQs - Part 2 Object Oriented Programming Solved MCQs - Part 2 It is possible to declare as a friend A member function A global function A class All of the above What
More informationText User Interfaces. Keyboard IO plus
Text User Interfaces Keyboard IO plus User Interface and Model Model: objects that solve problem at hand. User interface: interacts with user getting input from user giving output to user reporting on
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 informationabstract binary class composition diamond Error Exception executable extends friend generic hash implementation implements
CS365 Midterm 1) This exam is open-note, open book. 2) You must answer all of the questions. 3) Answer all the questions on a separate sheet of paper. 4) You must use Java to implement the coding questions.
More informationProgramming Language Concepts: Lecture 2
Programming Language Concepts: Lecture 2 Madhavan Mukund Chennai Mathematical Institute madhavan@cmi.ac.in http://www.cmi.ac.in/~madhavan/courses/pl2011 PLC 2011, Lecture 2, 6 January 2011 Classes and
More informationAbstract Classes. Abstract Classes a and Interfaces. Class Shape Hierarchy. Problem AND Requirements. Abstract Classes.
a and Interfaces Class Shape Hierarchy Consider the following class hierarchy Shape Circle Square Problem AND Requirements Suppose that in order to exploit polymorphism, we specify that 2-D objects must
More information3.1 Class Declaration
Chapter 3 Classes and Objects OBJECTIVES To be able to declare classes To understand object references To understand the mechanism of parameter passing To be able to use static member and instance member
More informationJava: Classes. An instance of a class is an object based on the class. Creation of an instance from a class is called instantiation.
Java: Classes Introduction A class defines the abstract characteristics of a thing (object), including its attributes and what it can do. Every Java program is composed of at least one class. From a programming
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 informationSoftware 1 with Java. Initialization. Initialization. Initialization. Pass by Value. Initialization. Recitation No. 11 (Summary)
Software 1 with Java Recitation No. 11 (Summary) public class Foo { static int bar; public static void main (String args []) { bar += 1; System.out.println("bar = " + bar); The Does output the code is:
More informationIntro to OOP Visibility/protection levels and constructors Friend, convert constructor, destructor Operator overloading a<=b a.
Intro to OOP - Object and class - The sequence to define and use a class in a program - How/when to use scope resolution operator - How/when to the dot operator - Should be able to write the prototype
More informationCSCE 314 TAMU Fall CSCE 314: Programming Languages Dr. Flemming Andersen. Java Reflection
CSCE 314 TAMU Fall 2017 1 CSCE 314: Programming Languages Dr. Flemming Andersen Java Reflection CSCE 314 TAMU Fall 2017 Reflection and Metaprogramming Metaprogramming: Writing (meta)programs that represent
More informationC++ Crash Kurs. Polymorphism. Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck
C++ Crash Kurs Polymorphism Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer C++ Polymorphism Major abstractions of C++ Data abstraction
More informationInheritance (Extends) Overriding methods IS-A Vs. HAS-A Polymorphism. superclass. is-a. subclass
Inheritance and Polymorphism Inheritance (Extends) Overriding methods IS-A Vs. HAS-A Polymorphism Inheritance (semantics) We now have two classes that do essentially the same thing The fields are exactly
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 information