CS5233 Components Models and Engineering
|
|
- Alberta O’Neal’
- 6 years ago
- Views:
Transcription
1 CS5233 Components Models and Engineering (Komponententechnologien) Master of Science (Informatik) Reflection Seite 1
2 Java Reflection Reflection Reflection is when you see yourself. Why would you like to see yourself? To adapt yourself to some special need. Refection in programming: a running program sees itself / manipulates itself. Refection uses metadata: Data about components of the running program. Reflection is essential for each Java-based run-time component technology. Seite 2
3 Java Reflection / Metadata Metadata Metadata = data about the program and it's parts Metadata access and usage through the following classes classes: java.lang.class<t> fields: java.lang.reflect.field constructors: java.lang.reflect.constructor<t> methods: java.lang.reflect.method arrays: java.lang.reflect.array modifiers: java.lang.reflect.modifier Seite 3
4 Java Reflection / Metadata Metadata usage examples Example: Access class-related metadata of an object. package reflectionp; public class Hello { public static void main(string[] args) { Hello hello = new Hello(); Class<?> clazz = hello.getclass(); System. out.println("class " + clazz + " was loaded by " + clazz.getclassloader()); Example: Use metadata to create an object package reflectionp; public class Hello { void sayhello() { System.out.println("Hello"); public static void main(string[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException { Class<?> helloclass = Class. forname ("reflectionp.hello" ); Hello hello = (Hello) helloclass.newinstance(); hello.sayhello(); Seite 4
5 Java Reflection / Metadata of Classes Class.forName Class.forName(String name [, boolean initialize, ClassLoader loader ]) create class object from class name initialize (default = true) initialize the class loader (default = current loader = this.getclass().getclassloader() ) Class-objects for primitve types primitive types have related class-objects: int.class, byte.class, may not be used to create objects (of course) may be used to check parameter or result types public class Hello { void sayhello() { System. out.println("hello"); public static void main(string[] args) throws ClassNotFoundException, SecurityException, NoSuchMethodException { Class<?> clazz = Class. forname ("reflectionp.hello"); Method m = clazz.getdeclaredmethod( "sayhello"); if (m.getreturntype().equals( void.class)) { System. out.println("sayhello is a void method" ); Seite 5
6 Java Reflection / Metadata of Classes Static and dynamic access to Class-objects Class<?> object.getclass () dynamic access to the class of an object returns the class of an object an instance of class Class Class. class static access to an instance of class Class Example: Class<String> classobject1 = String. class; String astring1 = classobject1.newinstance(); Class<?> classobject2 = Class. forname ("java.lang.string" ); String astring2 = (String) classobject2.newinstance(); System. out.println(astring1.getclass()); System. out.println(astring2.getclass()); static access to class-object generics allowed dynamic access to class-object generic not allowed (cast instead) class java.lang.string class java.lang.string Seite 6
7 Java Reflection / Metadata of Classes Static and dynamic checks on a class object instanceof <static type expression> expression of type boolean check of an object against a static type expression ClassObject. isinstance ( object ) method of class Class dynamic equivalent for instanceof check of an object against a class denoted by a Class object (a dynamically resolved type) Class<?> clazza = Class. forname ("reflectionp.animal" ); Class<?> clazzc = Class. forname ("reflectionp.cow" ); Animal Object o = clazzc.newinstance(); if (o instanceof Animal) { // OK o is an Animal Cow System. out.println(o + " is an Animal"); if (o instanceof Class.forName("reflectionP.Animal") ) { // Syntax-ERROR System. out.println(o + " is an Animal"); if (clazza.isinstance(o)) { // OK o is an Animal Possible only if System. out.println(o + " is an Animal"); we may refer statically to if (clazzc.isinstance(o)) { // OK o is a Cow class Animal! System. out.println(o + " is a Cow"); Seite 7
8 Java Reflection / Metadata of Classes Static and dynamic casts (<type>) object expression of static type <type> casts an object to a statically denoted type ClassObject. cast (object ) method of class Class casts object to the class dynamically represented by the ClassObject dynamic equivalent of a cast Animal Class<?> clazza = Class. forname ("reflectionp.animal" ); Class<?> clazzc = Class. forname ("reflectionp.cow" ); Class<?> clazzt = Class. forname ("reflectionp.tiger"); Cow Tiger Object o = clazzc.newinstance(); Animal Animal Object Object a1 a2 a2 a3 = = = = (Animal) o; // OK (Class.forName("reflectionP.Animal")) o; // Syntax ERROR clazza.cast(o); clazzt. cast(o); // Class cast exeception Possible only if we may refer statically to class Animal! Seite 8
9 Java Reflection / Metadata of Classes assubclass classobject. assubclass (anotherclassobject ) casts classobject to represent a subclass of anotherclassobject usually you work with statically known interfaces and dynamically loaded implementations of the interface sometimes however you have to feed a method with a class-object of a certain subtype Interface MilkProvider is implemented by class ("unchecked") static Class<? extends MilkProvider> getmp1(string classname) throws ClassNotFoundException { Class<?> clazzc = Class. forname (classname); return (Class<? extends MilkProvider>) clazzc; static cast: not type save static Class<? extends MilkProvider> getmp2(string classname) throws ClassNotFoundException { Class<?> clazzc = Class. forname (classname); return clazzc.assubclass(milkprovider.class); assubclass to safely cast to type bound Class<? extends MilkProvider> clazz = getmp 1/2 ("reflectiontest.cow" ); MilkProvider mp = clazz.newinstance(); mp.milk(); same usage for both versions Seite 9
10 Java Reflection / Metadata of Classes isclassproperty Checks classobject. isproperty() methods check properties of classes represented by a classobject properties checks are: isannotation() isannotationpresent(class<? extends Annotation> annotationclass) isanonymousclass() isarray() isassignablefrom(class<?> cls) isenum() isinstance(object obj) isinterface() islocalclass() ismemberclass() isprimitive() issynthetic() Seite 10
11 Java Reflection / Arrays Arrays Class-objects for array types array types have related class-objects, that are referenced through codings: [Lclass-name; Array of class-name objects [code Array of primitive-values according to the code as may [-s as dimensions Codings for primitive types: I ~ int, J ~ long, B ~ byte, F ~ float, D ~ double, Z ~ boolean access and use metadata of arrays using java.lang.reflect.array create array-objects with Array.newInstance(Class<?> componenttype, int length) access component type using java.lang.class java.lang.class.getcomponenttype int[] a = (int[]) Array. newinstance (int.class, 2); a[0] = 1; Array. set (a, 1, 2); System. out.println(a[1] + (Integer)Array. get (a, 0)); Class<?> clazz = a.getclass().getcomponenttype(); int[] b = (int[]) Array.newInstance( clazz, 2); b[0] = 1; Seite 11
12 Java Reflection / Arrays Arrays Example Hello[] ha = new Hello[2]; System. out.println(ha.getclass()); //->class [LreflectionP.Hello; Class<?> clazz1 = Class. forname ("[I"); Object o1 = clazz1.newinstance(); //ERROR java.lang.instantiationexception int[][] aa = (int[][]) Array. newinstance (Class. forname ("[I"), 2); aa[0] = (int[]) Array. newinstance (int.class, 2); aa[1] = (int[]) Array. newinstance (int.class, 3); aa = (int[][]) Array.newInstance(Class.forName( "[[I"), 2); Hello[][] hh = (Hello[][]) Array.newInstance(Class.forName( "[LreflectionP.Hello;" ), 1); hh[0] = new Hello[1]; hh[0][0] = (Hello) Class.forName( "reflectionp.hello").newinstance(); Class.newInstance may not be used to create arrayinstances but it may be used to create an array-class object that is used as component type by Array.newInstance Seite 12
13 Java Reflection / Constructors Constructors default constructor is invoked by Class.newInstance other constructors: lookup with Class.getConstructor invoked via Constructor.newInstance Class<?> clazz = Class. forname ("reflectionp.name" ); Object o1 = clazz.newinstance(); // newinstance calls the default constructor //create constructor object from parameter types Constructor<?> constructor = clazz.getconstructor( new Class[]{String. class); //create instance using constructor object and arguments Object o2 = constructor.newinstance( new Object[]{"Karla"); System. out.println(o1); //-> Hugo System. out.println(o2); //-> Karla package reflectionp; class Name { private String name; public Name() { name = "Hugo"; // must be public to be used via reflection public Name(String name){ this.name = public String tostring() { return name; Seite 13
14 Java Reflection / Methods Methods lookup public method with class.getmethod in class or a superclass lookup any method with class.getdeclaredmethod in class invocation with method.invoke Class<?> clazz = Class. forname ("reflectionp.name" ); Object o = clazz.newinstance(); // tostring with no parameters Method m = clazz.getmethod("tostring", new Class[]{); System. out.println( m.invoke(o, new Object[]{) ); package reflectionp; class Name { private String name; public Name() { name = "Hugo"; // must be public to be used via reflection public Name(String name){ this.name = public String tostring() { return name; Seite 14
15 Java Reflection / Methods class Person { private String name; public Person() { name = "Hugo"; public Person(String name){ this.name = public String tostring() { return "Person "+ name; Methods / Example class Student extends Person { public Student() { super("carla"); public Student(String name){ public String tostring() { return "Cand. inf. "+ super.tostring(); Class<?> clazz = Class. forname ("reflectionp.student" ); Object o = clazz.newinstance(); Method m = clazz.getmethod( "tostring", new Class[]{); System. out.println( m.invoke(o, new Object[]{)); Method superm = Object. class.getdeclaredmethod("tostring", new Class[]{); System. out.println( superm.invoke(o, new Object[]{)); dynamic binding! Cand. inf. Person Carla Cand. inf. Person Carla Seite 15
16 Java Reflection / Fields Fields lookup public field with class.getfield in class or a superclass lookup any field with class.getdeclaredfield in class invocation with method.invoke Class<?> clazz = Class. forname ("reflectionp.student"); Object o = clazz.newinstance(); Field f = clazz.getsuperclass().getdeclaredfield( "name"); f.set(o, "Egon"); // ERROR: private, not accessible f.setaccessible( true); // set field to accessible f.set(o, "Egon"); Method m = clazz.getmethod("tostring", new Class[]{); System. out.println( m.invoke(o, new Object[]{) ); classes Student and Person as above Seite 16
17 Java Reflection / Modifiers Modifiers Modifiers are represented as bits in an integer Modifiers are accessed using method getmodifiers() on a java.lang.class -object java.lang.reflect.method -object java.lang.reflect.field -object Check for modifiers using static methods of java.lang.reflect.modifier e.g. Class<?> clazz = Class. forname ("reflectionp.student"); int modifiers = clazz.getmodifiers(); if (Modifier. isinterface (modifiers)) { System. out.println(clazz + " is an interface"); else { System. out.println(clazz + " is not interface" ); Modifiers are: abstract, static, final, interface, native, private, protected, public, static, strictfp, synchronized, transient, volatile Seite 17
JAVA. Reflection API. Java, summer semester
JAVA Reflection API 26.2.2013 1 Overview Reflection changes structure/state of objects Introspection exploring a structure of objects similar to RTTI in C++ but more powerful allows obtaining information
More informationJAVA.LANG.CLASS CLASS
JAVA.LANG.CLASS CLASS http://www.tutorialspoint.com/java/lang/java_lang_class.htm Copyright tutorialspoint.com Introduction The java.lang.class class instance represent classes and interfaces in a running
More informationAdvanced programming for Java platform. Introduction
Advanced programming for Java platform Introduction About course Petr Hnětynka hnetynka@d3s.mff.cuni.cz http://d3s.mff.cuni.cz/teaching/vsjava/ continuation of "Java (NPRG013)" basic knowledge of Java
More informationIntroflection. Dave Landers BEA Systems, Inc.
Introflection Dave Landers BEA Systems, Inc. dave.landers@bea.com Agenda What is Introflection? Primary Classes and Objects Loading Classes Creating Objects Invoking Methods Java Beans Proxy What is Introflection?
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 informationLecture 9 : Basics of Reflection in Java
Lecture 9 : Basics of Reflection in Java LSINF 2335 Programming Paradigms Prof. Kim Mens UCL / EPL / INGI (Slides partly based on the book Java Reflection in Action, on The Java Tutorials, and on slides
More informationChair of Software Engineering. Java and C# in depth. Carlo A. Furia, Marco Piccioni, Bertrand Meyer. Java: reflection
Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer Java: reflection Outline Introductory detour: quines Basic reflection Built-in features Introspection Reflective method invocation
More informationIntroduction to Reflection
Introduction to Reflection Mark Allen Weiss Copyright 2000 1 What is Reflection The Class class Outline of Topics Run Time Type Identification (RTTI) Getting Class Information Accessing an arbitrary object
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 informationEPITA Première Année Cycle Ingénieur. Atelier Java - J3
EPITA Première Année Cycle Ingénieur marwan.burelle@lse.epita.fr http://www.lse.epita.fr Overview 1 Imagination From 2 Plan 1 Imagination From Plan 1 Imagination From What is Reflection is the process
More informationSoftware-Architecture Annotations, Reflection and Frameworks
Software-Architecture Annotations, Reflection and Frameworks Prof. Dr. Axel Böttcher 3. Oktober 2011 Objectives (Lernziele) Understand the Java feature Annotation Implement a simple annotation class Know
More informationArgument Passing All primitive data types (int etc.) are passed by value and all reference types (arrays, strings, objects) are used through refs.
Local Variable Initialization Unlike instance vars, local vars must be initialized before they can be used. Eg. void mymethod() { int foo = 42; int bar; bar = bar + 1; //compile error bar = 99; bar = bar
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 informationObject Oriented Programming
Object Oriented Programming Digital Urban Visualization. People as Flows. 10.10.2016 ia zuend@arch.ethz.ch treyer@arch.ethz.ch chirkin@arch.ethz.ch Object Oriented Programming? Pertaining to a technique
More informationBIT Java Programming. Sem 1 Session 2011/12. Chapter 2 JAVA. basic
BIT 3383 Java Programming Sem 1 Session 2011/12 Chapter 2 JAVA basic Objective: After this lesson, you should be able to: declare, initialize and use variables according to Java programming language guidelines
More informationRules and syntax for inheritance. The boring stuff
Rules and syntax for inheritance The boring stuff The compiler adds a call to super() Unless you explicitly call the constructor of the superclass, using super(), the compiler will add such a call for
More informationReflection (in fact, Java introspection)
Reflection (in fact, Java introspection) Prof. Dr. Ralf Lämmel Universität Koblenz-Landau Software Languages Team Elevator speech So programs are programs and data is data. However, programs can be represented
More informationIra R. Forman Nate Forman
Ira R. Forman Nate Forman M A N N I N G Java Reflection in Action by Ira R. Forman and Nate Forman Sample Chapter 1 Copyright 2004 Manning Publications contents Chapter 1 A few basics Chapter 2 Accessing
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 informationContents. I. Classes, Superclasses, and Subclasses. Topic 04 - Inheritance
Contents Topic 04 - Inheritance I. Classes, Superclasses, and Subclasses - Inheritance Hierarchies Controlling Access to Members (public, no modifier, private, protected) Calling constructors of superclass
More informationOOP Reflection. Kasper Østerbye Mette Jaquet Carsten Schuermann. IT University Copenhagen
OOP Reflection Kasper Østerbye Mette Jaquet Carsten Schuermann IT University Copenhagen 1 Today's schedule Reflection modelling a domain vs. modelling objects Testing Example: Checking that all fields
More informationJava Magistère BFA
Java 101 - Magistère BFA Lesson 3: Object Oriented Programming in Java Stéphane Airiau Université Paris-Dauphine Lesson 3: Object Oriented Programming in Java (Stéphane Airiau) Java 1 Goal : Thou Shalt
More informationEPITA Première Année Cycle Ingénieur. Atelier Java - J3
EPITA Première Année Cycle Ingénieur marwan.burelle@lse.epita.fr http://www.lse.epita.fr Overview 1 Imagination From? Architecture of Reflexivity in Java 2 Find Methods With Annotations Imagination From?
More informationJava Object Model. Or, way down the rabbit hole
Java Object Model Or, way down the rabbit hole 1 Type Definition: a set of values and a set of operations that can be applied to those values Java is a strongly-typed language: compiler & runtime system
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 informationEPITA Première Année Cycle Ingénieur. Atelier Java - J3
EPITA Première Année Cycle Ingénieur marwan.burelle@lse.epita.fr http://www.lse.epita.fr Overview 1 Imagination From? Architecture of Reflexivity in Java 2 Find Methods With Annotations Imagination From?
More informationInheritance & Polymorphism
E H U N I V E R S I T Y T O H F R G E D I N B U Murray Cole Classifying Things 1 Hierarchies help us to classify things and understand their similarities and differences Some aspects are common to everything
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 informationCSC 1214: Object-Oriented Programming
CSC 1214: Object-Oriented Programming J. Kizito Makerere University e-mail: jkizito@cis.mak.ac.ug www: http://serval.ug/~jona materials: http://serval.ug/~jona/materials/csc1214 e-learning environment:
More informationCS5233 Components Models and Engineering
CS5233 Components Models and Engineering - Komponententechnologien Master of Science (Informatik) Java Services Seite 1 Services Services Build-in technology Java 6 build-in technology to load services
More informationDistributed Systems Recitation 1. Tamim Jabban
15-440 Distributed Systems Recitation 1 Tamim Jabban Office Hours Office 1004 Tuesday: 9:30-11:59 AM Thursday: 10:30-11:59 AM Appointment: send an e-mail Open door policy Java: Object Oriented Programming
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 informationBig software. code reuse: The practice of writing program code once and using it in many contexts.
Inheritance Big software software engineering: The practice of conceptualizing, designing, developing, documenting, and testing largescale computer programs. Large-scale projects face many issues: getting
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 information15CS45 : OBJECT ORIENTED CONCEPTS
15CS45 : OBJECT ORIENTED CONCEPTS QUESTION BANK: What do you know about Java? What are the supported platforms by Java Programming Language? List any five features of Java? Why is Java Architectural Neutral?
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 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 informationInformatik II (D-ITET) Tutorial 6
Informatik II (D-ITET) Tutorial 6 TA: Marian George, E-mail: marian.george@inf.ethz.ch Distributed Systems Group, ETH Zürich Exercise Sheet 5: Solutions and Remarks Variables & Methods beginwithlowercase,
More informationAn overview of Java, Data types and variables
An overview of Java, Data types and variables Lecture 2 from (UNIT IV) Prepared by Mrs. K.M. Sanghavi 1 2 Hello World // HelloWorld.java: Hello World program import java.lang.*; class HelloWorld { public
More informationHAS-A Relationship. If A uses B, then it is an aggregation, stating that B exists independently from A.
HAS-A Relationship Association is a weak relationship where all objects have their own lifetime and there is no ownership. For example, teacher student; doctor patient. If A uses B, then it is an aggregation,
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 informationdeveloper.* The Independent Magazine for Software Professionals Factory Chain: A Design Pattern for Factories with Generics by Hugo Troche
developer.* The Independent Magazine for Software Professionals Factory Chain: A Design Pattern for Factories with Generics by Hugo Troche Introduction The recent Java 5 (a.k.a. Java 1.5) generics implementation
More informationInformatik II. Tutorial 6. Mihai Bâce Mihai Bâce. April 5,
Informatik II Tutorial 6 Mihai Bâce mihai.bace@inf.ethz.ch 05.04.2017 Mihai Bâce April 5, 2017 1 Overview Debriefing Exercise 5 Briefing Exercise 6 Mihai Bâce April 5, 2017 2 U05 Some Hints Variables &
More informationCreate a Java project named week10
Objectives of today s lab: Through this lab, students will examine how casting works in Java and learn about Abstract Class and in Java with examples. Create a Java project named week10 Create a package
More informationCS-202 Introduction to Object Oriented Programming
CS-202 Introduction to Object Oriented Programming California State University, Los Angeles Computer Science Department Lecture III Inheritance and Polymorphism Introduction to Inheritance Introduction
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 informationBuilding Java Programs. Introduction to Programming and Simple Java Programs
Building Java Programs Introduction to Programming and Simple Java Programs 1 A simple Java program public class Hello { public static void main(string[] args) { System.out.println("Hello, world!"); code
More informationMarcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science
Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm } Annotations do not directly affect program semantics.
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 informationExpressions and Data Types CSC 121 Spring 2015 Howard Rosenthal
Expressions and Data Types CSC 121 Spring 2015 Howard Rosenthal Lesson Goals Understand the basic constructs of a Java Program Understand how to use basic identifiers Understand simple Java data types
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 informationAP CS Unit 6: Inheritance Notes
AP CS Unit 6: Inheritance Notes Inheritance is an important feature of object-oriented languages. It allows the designer to create a new class based on another class. The new class inherits everything
More informationThe software crisis. code reuse: The practice of writing program code once and using it in many contexts.
Inheritance The software crisis software engineering: The practice of conceptualizing, designing, developing, documenting, and testing largescale computer programs. Large-scale projects face many issues:
More informationCOMPUTER SCIENCE DEPARTMENT PICNIC. Operations. Push the power button and hold. Once the light begins blinking, enter the room code
COMPUTER SCIENCE DEPARTMENT PICNIC Welcome to the 2016-2017 Academic year! Meet your faculty, department staff, and fellow students in a social setting. Food and drink will be provided. When: Saturday,
More informationChapter 11 Inheritance and Polymorphism. Motivations. Suppose you will define classes to model circles,
Chapter 11 Inheritance and Polymorphism 1 Motivations Suppose you will define classes to model circles, rectangles, and triangles. These classes have many common features. What is the best way to design
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 Programming. Atul Prakash
Java Programming Atul Prakash Java Language Fundamentals The language syntax is similar to C/ C++ If you know C/C++, you will have no trouble understanding Java s syntax If you don't, it will be easier
More informationWeek 5-1: ADT Design
Week 5-1: ADT Design Part1. ADT Design Define as class. Every obejects are allocated in heap space. Encapsulation : Data representation + Operation Information Hiding : Object's representation part hides,
More informationOutline. More optimizations for our interpreter. Types for objects
Outline More optimizations for our interpreter Types for objects Optimization Eliminate tree walks: object creation, method calls fish initialize get_ grow eat colorfish color set_color get_color pickyfish
More informationWhat is Inheritance?
Inheritance 1 Agenda What is and Why Inheritance? How to derive a sub-class? Object class Constructor calling chain super keyword Overriding methods (most important) Hiding methods Hiding fields Type casting
More informationInheritance. Unit 8. Summary. 8.1 Inheritance. 8.2 Inheritance: example. Inheritance Overriding of methods and polymorphism The class Object
Unit 8 Inheritance Summary Inheritance Overriding of methods and polymorphism The class Object 8.1 Inheritance Inheritance in object-oriented languages consists in the possibility of defining a class that
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 informationInheritance and Polymorphism
Inheritance and Polymorphism Dr. M. G. Abbas Malik Assistant Professor Faculty of Computing and IT (North Jeddah Branch) King Abdulaziz University, Jeddah, KSA mgmalik@kau.edu.sa www.sanlp.org/malik/cpit305/ap.html
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 informationExercise: Singleton 1
Exercise: Singleton 1 In some situations, you may create the only instance of the class. 1 class mysingleton { 2 3 // Will be ready as soon as the class is loaded. 4 private static mysingleton Instance
More informationObject Oriented Programming is a programming method that combines: Advantage of Object Oriented Programming
Overview of OOP Object Oriented Programming is a programming method that combines: a) Data b) Instructions for processing that data into a self-sufficient object that can be used within a program or in
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 informationDistributed Systems Recitation 1. Tamim Jabban
15-440 Distributed Systems Recitation 1 Tamim Jabban Office Hours Office 1004 Sunday, Tuesday: 9:30-11:59 AM Appointment: send an e-mail Open door policy Java: Object Oriented Programming A programming
More informationInheritance. The Java Platform Class Hierarchy
Inheritance In the preceding lessons, you have seen inheritance mentioned several times. In the Java language, classes can be derived from other classes, thereby inheriting fields and methods from those
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 informationMaterial Java type system Reflection
CS1706 Intro to Object Oriented Dev II -Fall 04 Announcements Week 15 Final Exam: Tues. Dec. 14 @ 3:25pm Material Java type system Reflection Java Type System Type System is a set of values and the operations
More informationCSC207H: Software Design. Java + OOP. CSC207 Winter 2018
Java + OOP CSC207 Winter 2018 1 Why OOP? Modularity: code can be written and maintained separately, and easily passed around the system Information-hiding: internal representation hidden from the outside
More informationAdministrivia. Java Review. Objects and Variables. Demo. Example. Example: Assignments
CMSC433, Spring 2004 Programming Language Technology and Paradigms Java Review Jeff Foster Feburary 3, 2004 Administrivia Reading: Liskov, ch 4, optional Eckel, ch 8, 9 Project 1 posted Part 2 was revised
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 informationCSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1
CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines
More informationContents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix
PGJC4_JSE8_OCA.book Page ix Monday, June 20, 2016 2:31 PM Contents Figures Tables Examples Foreword Preface xix xxi xxiii xxvii xxix 1 Basics of Java Programming 1 1.1 Introduction 2 1.2 Classes 2 Declaring
More informationFirst IS-A Relationship: Inheritance
First IS-A Relationship: Inheritance The relationships among Java classes form class hierarchy. We can define new classes by inheriting commonly used states and behaviors from predefined classes. A class
More informationJava: introduction to object-oriented features
Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer Java: introduction to object-oriented features Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer
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 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 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 informationDay 4. COMP1006/1406 Summer M. Jason Hinek Carleton University
Day 4 COMP1006/1406 Summer 2016 M. Jason Hinek Carleton University today s agenda assignments questions about assignment 2 a quick look back constructors signatures and overloading encapsulation / information
More informationthis keyword in java javatpoint
this keyword in java javatpoint There can be a lot of usage of java this keyword. In java, this is a reference variable that refers to the current object. Usage of java this keyword Here is given the 6
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 informationInformatik II Tutorial 6. Subho Shankar Basu
Informatik II Tutorial 6 Subho Shankar Basu subho.basu@inf.ethz.ch 06.04.2017 Overview Debriefing Exercise 5 Briefing Exercise 6 2 U05 Some Hints Variables & Methods beginwithlowercase, areverydescriptiveand
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 informationReflection. Based on https://docs.oracle.com/javase/tutorial/reflect/
Reflection Based on https://docs.oracle.com/javase/tutorial/reflect/ Reflection is commonly used by programs which require the ability to examine or modify the runtime behavior of applications running
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 informationGoals for Today. CSE1030 Introduction to Computer Science II. CSE1030 Lecture #9. Review is-a versus has-a. Lecture #9 Inheritance I
CSE1030 Introduction to Computer Science II Lecture #9 Inheritance I Goals for Today Today we start discussing Inheritance (continued next lecture too) This is an important fundamental feature of Object
More informationCourse Content. Objectives of Lecture 24 Inheritance. Outline of Lecture 24. Inheritance Hierarchy. The Idea Behind Inheritance
Structural Programming and Data Structures Winter 2000 CMPUT 102: Dr. Osmar R. Zaïane Course Content Introduction Objects Methods Tracing Programs Object State Sharing resources Selection Repetition Vectors
More informationDeclarations and Access Control SCJP tips
Declarations and Access Control www.techfaq360.com SCJP tips Write code that declares, constructs, and initializes arrays of any base type using any of the permitted forms both for declaration and for
More informationC08: Inheritance and Polymorphism
CISC 3120 C08: Inheritance and Polymorphism Hui Chen Department of Computer & Information Science CUNY Brooklyn College 9/19/2017 CUNY Brooklyn College 1 Outline Recap and issues Project progress? Practice
More informationSome @SuppressWarnings
Java Annota)on Some Predefined Annota)on @Deprecated @Override @SuppressWarnings Annota)on Compiler instruc)ons Build- )me instruc)ons Run)me instruc)ons At build- )me: genera)ng source code, (see e.g.
More informationCourse Content. Objectives of Lecture 24 Inheritance. Outline of Lecture 24. CMPUT 102: Inheritance Dr. Osmar R. Zaïane. University of Alberta 4
Structural Programming and Data Structures Winter 2000 CMPUT 102: Inheritance Dr. Osmar R. Zaïane Course Content Introduction Objects Methods Tracing Programs Object State Sharing resources Selection Repetition
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 informationCOMP200 INHERITANCE. OOP using Java, from slides by Shayan Javed
1 1 COMP200 INHERITANCE OOP using Java, from slides by Shayan Javed 2 Inheritance Derive new classes (subclass) from existing ones (superclass). Only the Object class (java.lang) has no superclass Every
More informationAP CS Unit 8: Inheritance Exercises
AP CS Unit 8: Inheritance Exercises public class Animal{ System.out.print("A"); public void m2(){ System.out.print("B"); public class Dog extends Animal{ System.out.print("C"); public void m3(){ System.out.print("D");
More informationCISC 3115 TY3. C09a: Inheritance. Hui Chen Department of Computer & Information Science CUNY Brooklyn College. 9/20/2018 CUNY Brooklyn College
CISC 3115 TY3 C09a: Inheritance Hui Chen Department of Computer & Information Science CUNY Brooklyn College 9/20/2018 CUNY Brooklyn College 1 Outline Inheritance Superclass/supertype, subclass/subtype
More informationCLASS DESIGN. Objectives MODULE 4
MODULE 4 CLASS DESIGN Objectives > After completing this lesson, you should be able to do the following: Use access levels: private, protected, default, and public. Override methods Overload constructors
More informationCOP 3330 Final Exam Review
COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time
More information