r = obj2.m( 0, 1 ); s = obj2.f; r = obj2.m( ); r = obj2.anothermethod( 0, 1 ); s = obj2.anotherfield;

Size: px
Start display at page:

Download "r = obj2.m( 0, 1 ); s = obj2.f; r = obj2.m( ); r = obj2.anothermethod( 0, 1 ); s = obj2.anotherfield;"

Transcription

1 REFLECTION

2 ! Objects(access(fields( and(methods(of(other( objects((! A(safe(language( detects(situa7ons( where(the(receiver( object(does(not(have( the(accessed(field(or( method((! Type(systems(can(be( used(to(detect(such( errors(( r = obj2.m( 0, 1 ); s = obj2.f; r = obj2.m( ); r = obj2.anothermethod( 0, 1 ); s = obj2.anotherfield;

3 Sta7c(type(checking(! Each(expression(of(a( program(has(a(type%%! Types(of(variables(and( methods(are(declared% explicitly(or(inferred%%! Types(of(expressions(can( be(derived(from(the%types% of%their%cons2tuents%%! Type%rules(are(used(at( compile%2me%to(check( whether(a(program(is( correctly%typed%% Compile time Errors

4 Run(7me(type(checking(in(! Most(sta7c(type( systems(rely(on( dynamic(checks(for( certain(opera7ons((! Common(example:( type(conversions%by( casts((! Run82me%checks% throw(an(excep7on(in( case(of(a(type(error(( sta7c(type(systems(

5 Sta7c(vs(Dynamic(! Sta7c(checkers(need( to(approximate%run8 2me%behavior% (conserva7ve(checks)(! Dynamic(checkers( support(on8the8fly% code%genera2on%and( dynamic(class(loading(

6

7 Dynamic(Type(Checking(! instanceof%can(be( used(to(avoid(run7me( errors((! instanceof%makes( type(informa7on( available(to(program( execu7ons((

8 ! A(program(can( observe%and(modify% its(own(structure%and( behavior%%! Simplest%form% o Type(informa7on(is( available(at(run(7me((! Most%elaborate%% o All(compileI7me( informa7on(can(be( observed(and(modified( Reflec7on(

9 Why(we(need(reflec7on( As(a(programming(language(becomes(higher&and& higher&level,(its(implementa7on(in(terms(of( underlying(machine(involves(more&and&more& tradeoffs,(on(the(part(of(the(implementor,(about( what(cases(to(op7mize(at(the(expense(of(what( other(cases.( (the(ability&to&cleanly&integrate( something(outside(of(the(language s(scope( becomes&more&and&more&limited (( Kiczales(1993(

10 What(is(Reflec7on?(! Reflec2on%is(the(ability(of(a(program(to(manipulate&as&data( something(represen7ng(the(state&of&the&program(during(its( own(execu7on.(( o There(are(two(aspects(of(such(manipula7on:(introspec7on( and(intercession.(! Introspec2on%is(the(ability(for(a(program(to(observe(and( therefore(reason(about(its(own(state.((! Intercession%is(the(ability(for(a(program(to(modify(its(own( execu7on(state(or(alter&its&own&interpreta7on(or(meaning.( o Both(aspects(require(a(mechanism(for(encoding(execu7on( state(as(data:(providing(such(an(encoding(is(called( reifica7on. (( o Bobrow,(Gabriel(&(White,(1993(

11 Consequences( o A(reflec7ve(system(has(an(internal&representa7on&of& itself.( o A(reflec7ve(system(is(able(to(act&on&itself(with(the( ensurance(that(its(representa7on(will(be(causally( connected((up(to(date).(( o A(reflec7ve(system(has(some(sta7c(capacity(of(self: representa7on(and(dynamic(self:modifica7on(in( constant(synchroniza7on(

12 Metaobjects(vs(metaclasses(! Need(dis7nc7on(between(metaclass(and( metaobject!( o A(metaclass(is(a(class(whose(instances(are(classes( o A(metaobject(is(an(object(that(describes(or( manipulates(other(objects(! Different(metaobjects(can(control(different(aspects(of( objects(

13 Some(MetaObjects(! Structure:(( o Behavior,(ClassDescrip7on,(Class,(Metaclass,(ClassBuilder(! Seman+cs:-- o Compiler,(Decompiler,(IRBuilder(! Behavior:(( o CompiledMethod,(BlockContext,(Message,(Excep7on(! ControlState:(( o BlockContext,(Process,(ProcessorScheduler(! Resources:(( o WeakArray(! Naming:(( o SystemDic7onary(! Libraries:(( o MethodDic7onary,(ClassOrganizer(

14 Reflec7on(in(Java( For(every(loaded(class,(the(JVM(maintains(an( associated(class(object( The(Class(object( reflects (the(class(it( represents( Instances(of(the(class(Class(store(informa7on( about(classes( Class(name( Inheritance( Interfaces(implemented( Methods,(members,(etc.(

15 Class(object( Instances of the class Class represent classes and interfaces in a running Java application. Class has no public constructor. Class objects are constructed automatically by the JVM as classes are loaded

16 Class c = "foo".getclass(); Returns the Class for String void printclassname(object obj) { System.out.println("The class of " + obj + " is " + obj.getclass().getname()); Class object to print the class name of an object

17 Introspec7on(

18

19

20 public static void showtype(string classname) Class thisclass = Class.forName(className); String flavor = thisclass.isinterface()? "interface" : "class"; System.out.println(flavor + " " + classname); Class parent = thisclass.getsuperclass(); if (parent!= null) { throws ClassNotFoundException { System.out.println("extends " + parent.getname()); Class[] interfaces = thisclass.getinterfaces(); for (int i=0; i<interfaces.length; ++i) { System.out.println("implements "+ interfaces[i].getname());

21 static void showmethods(object o) { Class c = o.getclass(); Method[] themethods = c.getmethods(); for (int i = 0; i < themethods.length; i++) { String methodstring = themethods[i].getname(); System.out.println("Name: " + methodstring); System.out.println(" Return Type: " + themethods[i].getreturntype().getname()); Class[] parametertypes = themethods[i].getparametertypes(); System.out.print(" Parameter Types:"); for (int k = 0; k < parametertypes.length; k ++) { System.out.print(" " + parametertypes[k].getname()); System.out.println();

22 Employee number level print() Only((par7al( (view(of(the( classes ( MonthlyEmployee print() HourlyEmployee print() public final class MonthlyEmployee extends Employee { public void print() { System.out.println("I m a Monthly Employee"); public final class HourlyEmployee extends Employee { public void print() { System.out.println("I m a Hourly Employee");

23 Employee e; e = new MonthlyEmployee(); Class c = e.getclass(); System.out.println("class of e = " + c.getname()); e = new HourlyEmployee(); c = e.getclass(); System.out.println("class of e = " + c.getname()); class of e = MonthlyEmployee class of e = HourlyEmployee

24 We can ask a method object to invoke the method it represents we must provide it with the implicit and explicit arguments Employee e = new HourlyEmployee(); Class c = e.getclass(); Method m = c.getmethod("print", null); m.invoke(e, null); the output produced: I m a Hourly Employee

25 Unit(Tes7ng( class Cell { int value; Cell( int v ) { value = v; int get( ) { return value; void set( int v ) { value = v; void swap( Cell c ) { int tmp = value; value = c.value; c.value = tmp; class TestCell { void testset( ) {... void testswap( ) { Cell c1 = new Cell( 5 ); Cell c2 = new Cell( 7 ); c1.swap( c2 ); assert c1.get( ) == 7; assert c2.get( ) == 5;

26 public static void testdriver( String testclass ) { Class c = Class.forName( testclass ); Object tc = c.newinstance( ); Method[ ] methods = c.getdeclaredmethods( ); for( int i = 0; i < methods.length; i++ ) { if( methods[ i ].getname( ).startswith( "test ) && methods[ i ].getparametertypes( ).length == 0 ) methods[ i ].invoke( tc ); Basic mechanism behind JUnit

27 Safety checks have to be done at run-time Type checking: Does the Class-object represent a concrete class? Does the class have a parameter-less constructor? Accessibility: Are the class and the parameter-less constructor accessible?

28

29 Due to Java s erasure semantics, generic type information is not represented at run time

30

31 Code(genera7on(! If(code(is(represented(as(data,(we(can(as(well( allow(programs(to(create%code%from%data%%! Generate(code(dynamically(according(to(user( input(and(execu7on(environment((! Examples(( o Class(loading(in(Java( o Expression(trees(in(C#((

32 public class MainClass { public static void main(string[] args){ ClassLoader classloader = MainClass.class.getClassLoader(); try { Class aclass = classloader.loadclass("myclass"); System.out.println("aClass.getName() = " + aclass.getname()); catch (ClassNotFoundException e) { e.printstacktrace();

33 package java.lang; public abstract class ClassLoader { public Class loadclass(string name); protected Class defineclass(byte[] b); public URL getresource(string name); public Enumeration getresources(string name); public ClassLoader getparent()

34 public class A { public void dosomething() { B b = new B(); b.dosomethingelse(); B b = new B() is semantically equivalent to B b = A.class.getClassLoader().loadClass( B ).newinstance()

35 import java.util.logging.level; import java.util.logging.logger; public class ClassLoaderTest { public static void main(string args[]) { try { //printing ClassLoader of this class System.out.println("ClassLoaderTest.getClass().getClassLoader() : " + ClassLoaderTest.class.getClassLoader()); //trying to explicitly load this class again using Extension class loader Class.forName("test.ClassLoaderTest", true, ClassLoaderTest.class.getClassLoader().getParent()); catch (ClassNotFoundException ex) { Logger.getLogger(ClassLoaderTest.class.getName()).log(Level.SEVERE, null, ex);

36 Code(manipula7on(! If(code(is(represented(as(data,(we(can(as(well( allow(programs(to(modify%the%code%%! Adapt(program(dynamically(according(to(user( input(and(execu7on(environment((! Apply(systema7c(changes(to(programs(( o Code(instrumenta7on(

37 import java.io.*; public class HelloWorld { public static void main(string[] argv) { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String name = null; try { System.out.print("Please enter your name> "); name = in.readline(); catch(ioexception e) { return; System.out.println("Hello, " + name);

38 ClassGen cg = new ClassGen("HelloWorld", "java.lang.object", "<generated>", ACC_PUBLIC ACC_SUPER, null); ConstantPoolGen cp = cg.getconstantpool(); // cg creates constant pool InstructionList il = new InstructionList();

Concepts of Object-Oriented Programming Peter Müller

Concepts 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 information

Java Reflection. adapted from original slides by Tim Lethbridge University of Ottawa. Examining Classes. What is Reflection?

Java Reflection. adapted from original slides by Tim Lethbridge University of Ottawa. Examining Classes. What is Reflection? Note: The examples used in these slides are taken from: Java Tutorial: Reflection API. http://java.sun.com/docs/books/tutorial/reflect/index.html They have been enhanced with comments for the purpose of

More information

Reflection. 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 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 information

Lecture 9 : Basics of Reflection in Java

Lecture 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 information

Programming Language Concepts: Lecture 10

Programming 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 information

Announcement. Agenda 7/31/2008. Polymorphism, Dynamic Binding and Interface. The class will continue on Tuesday, 12 th August

Announcement. Agenda 7/31/2008. Polymorphism, Dynamic Binding and Interface. The class will continue on Tuesday, 12 th August Polymorphism, Dynamic Binding and Interface 2 4 pm Thursday 7/31/2008 @JD2211 1 Announcement Next week is off The class will continue on Tuesday, 12 th August 2 Agenda Review Inheritance Abstract Array

More information

Class, Variable, Constructor, Object, Method Questions

Class, 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 information

Background. Reflection. The Class Class. How Objects Work

Background. 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 information

File IO. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 20

File IO. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 20 File IO Computer Science and Engineering College of Engineering The Ohio State University Lecture 20 I/O Package Overview Package java.io Core concept: streams Ordered sequences of data that have a source

More information

Java Security. Compiler. Compiler. Hardware. Interpreter. The virtual machine principle: Abstract Machine Code. Source Code

Java 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 information

Full file at Chapter 2 - Inheritance and Exception Handling

Full file at   Chapter 2 - Inheritance and Exception Handling Chapter 2 - Inheritance and Exception Handling TRUE/FALSE 1. The superclass inherits all its properties from the subclass. ANS: F PTS: 1 REF: 76 2. Private members of a superclass can be accessed by a

More information

CS5000: Foundations of Programming. Mingon Kang, PhD Computer Science, Kennesaw State University

CS5000: Foundations of Programming. Mingon Kang, PhD Computer Science, Kennesaw State University CS5000: Foundations of Programming Mingon Kang, PhD Computer Science, Kennesaw State University Inheritance Three main programming mechanisms that constitute object-oriented programming (OOP) Encapsulation

More information

Input from Files. Buffered Reader

Input from Files. Buffered Reader Input from Files Buffered Reader Input from files is always text. You can convert it to ints using Integer.parseInt() We use BufferedReaders to minimize the number of reads to the file. The Buffer reads

More information

Unit 4 - Inheritance, Packages & Interfaces

Unit 4 - Inheritance, Packages & Interfaces Inheritance Inheritance is the process, by which class can acquire the properties and methods of its parent class. The mechanism of deriving a new child class from an old parent class is called inheritance.

More information

Studying software design patterns is an effective way to learn from the experience of others

Studying software design patterns is an effective way to learn from the experience of others Studying software design patterns is an effective way to learn from the experience of others Design Pattern allows the requester of a particular action to be decoupled from the object that performs the

More information

Getting Started in Java. Bill Pugh Dept. of Computer Science Univ. of Maryland, College Park

Getting Started in Java. Bill Pugh Dept. of Computer Science Univ. of Maryland, College Park Getting Started in Java Bill Pugh Dept. of Computer Science Univ. of Maryland, College Park Hello, World In HelloWorld.java public class HelloWorld { public static void main(string [] args) { System.out.println(

More information

What%is%a%model% ! Descrip(on+(abstrac(on)+of+real+world+things++ ! Abstract+representa(on+that+can+be+ manipulated+by+a+program++ structured%%

What%is%a%model% ! Descrip(on+(abstrac(on)+of+real+world+things++ ! Abstract+representa(on+that+can+be+ manipulated+by+a+program++ structured%% METAPROGRAMMING+ What%is%a%model%! Descrip(on+(abstrac(on)+of+real+world+things++ o Something%with%a%descrip4on%of%how%it%should%be% structured%% o Objects%&%rela4onships%(a%graph?)%%! Abstract+representa(on+that+can+be+

More information

Exceptions Handling Errors using Exceptions

Exceptions Handling Errors using Exceptions Java Programming in Java Exceptions Handling Errors using Exceptions Exceptions Exception = Exceptional Event Exceptions are: objects, derived from java.lang.throwable. Throwable Objects: Errors (Java

More information

Programming overview

Programming 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 information

Tools : The Java Compiler. The Java Interpreter. The Java Debugger

Tools : The Java Compiler. The Java Interpreter. The Java Debugger Tools : The Java Compiler javac [ options ] filename.java... -depend: Causes recompilation of class files on which the source files given as command line arguments recursively depend. -O: Optimizes code,

More information

Introflection. Dave Landers BEA Systems, Inc.

Introflection. 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 information

e) Implicit and Explicit Type Conversion Pg 328 j) Types of errors Pg 371

e) Implicit and Explicit Type Conversion Pg 328 j) Types of errors Pg 371 Class IX HY 2013 Revision Guidelines Page 1 Section A (Power Point) Q1.What is PowerPoint? How are PowerPoint files named? Q2. Describe the 4 different ways of creating a presentation? (2 lines each) Q3.

More information

EPITA Première Année Cycle Ingénieur. Atelier Java - J3

EPITA 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 information

Chapter 7. Inheritance

Chapter 7. Inheritance Chapter 7 Inheritance Introduction to Inheritance Inheritance is one of the main techniques of objectoriented programming (OOP) Using this technique, a very general form of a class is first defined and

More information

Java Class Loading and Bytecode Verification

Java 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 information

Lab 11. A sample of the class is:

Lab 11. A sample of the class is: Lab 11 Lesson 11-2: Exercise 1 Exercise 2 A sample of the class is: public class List // Methods public void store(int item) values[length] = item; length++; public void printlist() // Post: If the list

More information

CHETTINAD COLLEGE OF ENGINEERING & TECHNOLOGY JAVA

CHETTINAD COLLEGE OF ENGINEERING & TECHNOLOGY JAVA 1. JIT meaning a. java in time b. just in time c. join in time d. none of above CHETTINAD COLLEGE OF ENGINEERING & TECHNOLOGY JAVA 2. After the compilation of the java source code, which file is created

More information

Material Java type system Reflection

Material 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 information

What is Inheritance?

What 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 information

GlobalLogic Technical Question Paper

GlobalLogic Technical Question Paper GlobalLogic Technical Question Paper What is the output of the following code when compiled and run? Select two correct answers. public class Question01 { public static void main(string[] args){ int y=0;

More information

4. Finding & Displaying Record of Salesman with minimum net income. 5. Finding & Displaying Record of Salesman with maximum net income.

4. Finding & Displaying Record of Salesman with minimum net income. 5. Finding & Displaying Record of Salesman with maximum net income. Solution of problem#55 of Lab Assignment Problem Statement: Design & Implement a java program that can handle salesmen records of ABC Company. Each salesman has unique 4 digit id #, name, salary, monthly

More information

EPITA Première Année Cycle Ingénieur. Atelier Java - J3

EPITA 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 information

JAVA. Reflection API. Java, summer semester

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 information

Chair of Software Engineering. Java and C# in Depth. Prof. Dr. Bertrand Meyer. Exercise Session 7. Nadia Polikarpova

Chair of Software Engineering. Java and C# in Depth. Prof. Dr. Bertrand Meyer. Exercise Session 7. Nadia Polikarpova Chair of Software Engineering Java and C# in Depth Prof. Dr. Bertrand Meyer Exercise Session 7 Nadia Polikarpova Quiz 1: Does it compile? (Java) public class MyException extends Exception { Checked exception...

More information

Network. Dr. Jens Bennedsen, Aarhus University, School of Engineering Aarhus, Denmark

Network. Dr. Jens Bennedsen, Aarhus University, School of Engineering Aarhus, Denmark Network Dr. Jens Bennedsen, Aarhus University, School of Engineering Aarhus, Denmark jbb@ase.au.dk Outline Socket programming If we have the time: Remote method invocation (RMI) 2 Socket Programming Sockets

More information

Comp 249 Programming Methodology

Comp 249 Programming Methodology Comp 249 Programming Methodology Chapter 7 - Inheritance Part A Dr. Aiman Hanna Department of Computer Science & Software Engineering Concordia University, Montreal, Canada These slides has been extracted,

More information

Architecture of so-ware systems

Architecture of so-ware systems Architecture of so-ware systems Lecture 13: Class/object ini

More information

Std 12 Lesson-10 Exception Handling in Java ( 1

Std 12 Lesson-10 Exception Handling in Java (  1 Ch-10 : Exception Handling in Java 1) It is usually understood that a compiled program is error free and will always successfully. (a) complete (b) execute (c) perform (d) accomplish 2) In few cases a

More information

1. Download the JDK 6, from

1. Download the JDK 6, from 1. Install the JDK 1. Download the JDK 6, from http://java.sun.com/javase/downloads/widget/jdk6.jsp. 2. Once the file is completed downloaded, execute it and accept the license agreement. 3. Select the

More information

2018/2/5 话费券企业客户接入文档 语雀

2018/2/5 话费券企业客户接入文档 语雀 1 2 2 1 2 1 1 138999999999 2 1 2 https:lark.alipay.com/kaidi.hwf/hsz6gg/ppesyh#2.4-%e4%bc%81%e4%b8%9a%e5%ae%a2%e6%88%b7%e6%8e%a5%e6%94%b6%e5%85%85%e5 1/8 2 1 3 static IAcsClient client = null; public static

More information

Java Fundamentals (II)

Java Fundamentals (II) Chair of Software Engineering Languages in Depth Series: Java Programming Prof. Dr. Bertrand Meyer Java Fundamentals (II) Marco Piccioni static imports Introduced in 5.0 Imported static members of a class

More information

The Java programming environment. The Java programming environment. Java: A tiny intro. Java features

The Java programming environment. The Java programming environment. Java: A tiny intro. Java features The Java programming environment Cleaned up version of C++: no header files, macros, pointers and references, unions, structures, operator overloading, virtual base classes, templates, etc. Object-orientation:

More information

A sample print out is: is is -11 key entered was: w

A sample print out is: is is -11 key entered was: w Lab 9 Lesson 9-2: Exercise 1, 2 and 3: Note: when you run this you may need to maximize the window. The modified buttonhandler is: private static class ButtonListener implements ActionListener public void

More information

Dynamic Class Loading

Dynamic Class Loading Dynamic Class Loading Philippe Collet Partially based on notes from Michel Buffa Master 1 IFI Interna,onal 2012-2013 h4p://dep,nfo.unice.fr/twiki/bin/view/minfo/soceng1213 P. Collet 1 Agenda Principle

More information

Classes Basic Overview

Classes Basic Overview Final Review!!! Classes and Objects Program Statements (Arithmetic Operations) Program Flow String In-depth java.io (Input/Output) java.util (Utilities) Exceptions Classes Basic Overview A class is a container

More information

Do you really get classloaders?

Do you really get classloaders? Do you really get classloaders? Jevgeni Kabanov CEO & Founder of ZeroTurnaround (how awesome is that?) Free! social.jrebel.com Over 50 million builds, redeploys & restarts prevented for 30,000+ Java developers

More information

JAVA - 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

JAVA - 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 information

CS2141 Software Development using C/C++ C++ Basics

CS2141 Software Development using C/C++ C++ Basics CS2141 Software Development using C/C++ C++ Basics Integers Basic Types Can be short, long, or just plain int C++ does not define the size of them other than short

More information

University of Palestine. Mid Exam Total Grade: 100

University of Palestine. Mid Exam Total Grade: 100 First Question No. of Branches (5) A) Choose the correct answer: 1. If we type: system.out.println( a ); in the main() method, what will be the result? int a=12; //in the global space... void f() { int

More information

Java reflection. alberto ferrari university of parma

Java reflection. alberto ferrari university of parma Java reflection alberto ferrari university of parma reflection metaprogramming is a programming technique in which computer programs have the ability to treat programs as their data a program can be designed

More information

9 Working with the Java Class Library

9 Working with the Java Class Library 9 Working with the Java Class Library 1 Objectives At the end of the lesson, the student should be able to: Explain object-oriented programming and some of its concepts Differentiate between classes and

More information

COE318 Lecture Notes Week 10 (Nov 7, 2011)

COE318 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 information

JAVA Programming Language Homework I - OO concept

JAVA Programming Language Homework I - OO concept JAVA Programming Language Homework I - OO concept Student ID: Name: 1. Which of the following techniques can be used to prevent the instantiation of a class by any code outside of the class? A. Declare

More information

Profiler Instrumentation Using Metaprogramming Techniques

Profiler Instrumentation Using Metaprogramming Techniques Profiler Instrumentation Using Metaprogramming Techniques Ritu Arora, Yu Sun, Zekai Demirezen, Jeff Gray University of Alabama at Birmingham Department of Computer and Information Sciences Birmingham,

More information

Java Professional Certificate Day 1- Bridge Session

Java Professional Certificate Day 1- Bridge Session Java Professional Certificate Day 1- Bridge Session 1 Java - An Introduction Basic Features and Concepts Java - The new programming language from Sun Microsystems Java -Allows anyone to publish a web page

More information

OOP Reflection. Kasper Østerbye Mette Jaquet Carsten Schuermann. IT University Copenhagen

OOP 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 information

CSCE 314 Programming Languages

CSCE 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 information

INDEX. A SIMPLE JAVA PROGRAM Class Declaration The Main Line. The Line Contains Three Keywords The Output Line

INDEX. 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 information

Programming Language Concepts: Lecture 2

Programming 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/pl2009 PLC 2009, Lecture 2, 19 January 2009 Classes and

More information

Programming Language Concepts: Lecture 9

Programming Language Concepts: Lecture 9 Programming Language Concepts: Lecture 9 Madhavan Mukund Chennai Mathematical Institute madhavan@cmi.ac.in PLC 2011, Lecture 9, 10 February 2011 The event queue OS passes on low-level events to run-time

More information

Week 12. Streams and File I/O. Overview of Streams and File I/O Text File I/O

Week 12. Streams and File I/O. Overview of Streams and File I/O Text File I/O Week 12 Streams and File I/O Overview of Streams and File I/O Text File I/O 1 I/O Overview I/O = Input/Output In this context it is input to and output from programs Input can be from keyboard or a file

More information

Contents. I. Classes, Superclasses, and Subclasses. Topic 04 - Inheritance

Contents. 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 information

Here is a hierarchy of classes to deal with Input and Output streams.

Here 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 information

What is Serialization?

What is Serialization? Serialization 1 Topics What is Serialization? What is preserved when an object is serialized? Transient keyword Process of serialization Process of deserialization Version control Changing the default

More information

Special error return Constructors do not have a return value What if method uses the full range of the return type?

Special error return Constructors do not have a return value What if method uses the full range of the return type? 23 Error Handling Exit program (System.exit()) usually a bad idea Output an error message does not help to recover from the error Special error return Constructors do not have a return value What if method

More information

CSc 372 Comparative Programming Languages. Getting started... Getting started. B: Java Bytecode BCEL

CSc 372 Comparative Programming Languages. Getting started... Getting started. B: Java Bytecode BCEL BCEL CSc 372 Comparative Programming Languages B: Java Bytecode BCEL BCEL (formerly JavaClass) allows you to load a class, iterate through the methods and fields, change methods, add new methods and fields,

More information

Inheritance (continued) Inheritance

Inheritance (continued) Inheritance Objectives Chapter 11 Inheritance and Polymorphism Learn about inheritance Learn about subclasses and superclasses Explore how to override the methods of a superclass Examine how constructors of superclasses

More information

Software Practice 1 - Basic Grammar Basic Syntax Data Type Loop Control Making Decision

Software Practice 1 - Basic Grammar Basic Syntax Data Type Loop Control Making Decision Software Practice 1 - Basic Grammar Basic Syntax Data Type Loop Control Making Decision Prof. Hwansoo Han T.A. Minseop Jeong T.A. Wonseok Choi 1 Java Program //package details public class ClassName {

More information

FINAL TERM EXAMINATION SPRING 2010 CS304- OBJECT ORIENTED PROGRAMMING

FINAL TERM EXAMINATION SPRING 2010 CS304- OBJECT ORIENTED PROGRAMMING FINAL TERM EXAMINATION SPRING 2010 CS304- OBJECT ORIENTED PROGRAMMING Question No: 1 ( Marks: 1 ) - Please choose one Classes like TwoDimensionalShape and ThreeDimensionalShape would normally be concrete,

More information

MSc/ICY Software Workshop Exception Handling, Assertions Scanner, Patterns File Input/Output

MSc/ICY Software Workshop Exception Handling, Assertions Scanner, Patterns File Input/Output MSc/ICY Software Workshop Exception Handling, Assertions Scanner, Patterns File Input/Output Manfred Kerber www.cs.bham.ac.uk/~mmk 21 October 2015 1 / 18 Manfred Kerber Classes and Objects The information

More information

CS506 Web Design & Development Final Term Solved MCQs with Reference

CS506 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 information

Reverse Engineering of Managed Languages

Reverse Engineering of Managed Languages Reverse Engineering of Managed Languages IT Security Bootcamp 2017 Dorottya Papp Agenda Reverse engineering Managed languages Introduction: what makes a programming language managed? Intermediate language

More information

Introduction to Reflection

Introduction 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 information

CH. 2 OBJECT-ORIENTED PROGRAMMING

CH. 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 information

OBJECT ORIENTED PROGRAMMING. Course 4 Loredana STANCIU Room B616

OBJECT ORIENTED PROGRAMMING. Course 4 Loredana STANCIU Room B616 OBJECT ORIENTED PROGRAMMING Course 4 Loredana STANCIU loredana.stanciu@upt.ro Room B616 Inheritance A class that is derived from another class is called a subclass (also a derived class, extended class,

More information

Java in 21 minutes. Hello world. hello world. exceptions. basic data types. constructors. classes & objects I/O. program structure.

Java in 21 minutes. Hello world. hello world. exceptions. basic data types. constructors. classes & objects I/O. program structure. Java in 21 minutes hello world basic data types classes & objects program structure constructors garbage collection I/O exceptions Strings Hello world import java.io.*; public class hello { public static

More information

CSc 620 Debugging, Profiling, Tracing, and Visualizing Programs. Getting started... Getting started. 2 : Java Bytecode BCEL

CSc 620 Debugging, Profiling, Tracing, and Visualizing Programs. Getting started... Getting started. 2 : Java Bytecode BCEL BCEL CSc 620 Debugging, Profiling, Tracing, and Visualizing Programs 2 : Java Bytecode BCEL BCEL (formerly JavaClass) allows you to load a class, iterate through the methods and fields, change methods,

More information

CS321 Languages and Compiler Design I. Winter 2012 Lecture 2

CS321 Languages and Compiler Design I. Winter 2012 Lecture 2 CS321 Languages and Compiler Design I Winter 2012 Lecture 2 1 A (RE-)INTRODUCTION TO JAVA FOR C++/C PROGRAMMERS Why Java? Developed by Sun Microsystems (now Oracle) beginning in 1995. Conceived as a better,

More information

Java Refresh Exercises

Java Refresh Exercises Java Refresh Exercises Object Oriented Programming with Java: an introduction Raffaele Montella University of Naples Parthenope Outline Introduction to Java The HelloWorld program Code features Comments

More information

Exceptions Questions https://www.journaldev.com/2167/java-exception-interview-questionsand-answers https://www.baeldung.com/java-exceptions-interview-questions https://javaconceptoftheday.com/java-exception-handling-interviewquestions-and-answers/

More information

CSc 620 Debugging, Profiling, Tracing, and Visualizing Programs

CSc 620 Debugging, Profiling, Tracing, and Visualizing Programs CSc 620 Debugging, Profiling, Tracing, and Visualizing Programs 2 : Java Bytecode BCEL Christian Collberg Department of Computer Science University of Arizona collberg+620@gmail.com Copyright c 2005Christian

More information

public static boolean isoutside(int min, int max, int value)

public 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 information

6.Introducing Classes 9. Exceptions

6.Introducing Classes 9. Exceptions 6.Introducing Classes 9. Exceptions Sisoft Technologies Pvt Ltd SRC E7, Shipra Riviera Bazar, Gyan Khand-3, Indirapuram, Ghaziabad Website: www.sisoft.in Email:info@sisoft.in Phone: +91-9999-283-283 Learning

More information

CMSC 341. Nilanjan Banerjee

CMSC 341. Nilanjan Banerjee CMSC 341 Nilanjan Banerjee http://www.csee.umbc.edu/~nilanb/teaching/341/ Announcements Just when you thought Shawn was going to teach this course! On a serious note: register on Piazza I like my classes

More information

Birkbeck (University of London) Software and Programming 1 In-class Test Mar 2018

Birkbeck (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 information

d. If a is false and b is false then the output is "ELSE" Answer?

d. If a is false and b is false then the output is ELSE Answer? Intermediate Level 1) Predict the output for the below code: public void foo( boolean a, boolean b) if( a ) System.out.println("A"); if(a && b) System.out.println( "A && B"); if (!b ) System.out.println(

More information

Review of Object-Oriented Concepts in JAVA

Review of Object-Oriented Concepts in JAVA Review of Object-Oriented Concepts in JAVA Object-Oriented Concepts supported by JAVA. Advantages of Object-Orientation. Inheritance. Abstract Classes. Interfaces. Review Questions. Object-Oriented Concepts

More information

TEST (MODULE:- 1 and 2)

TEST (MODULE:- 1 and 2) TEST (MODULE:- 1 and 2) What are command line arguments? Write a program in JAVA to print Fibonacci series using command line arguments? [10] Create a class employee with data members empid, empname, designation

More information

Access and Non access Modifiers in Core Java Core Java Tutorial

Access and Non access Modifiers in Core Java Core Java Tutorial Access and Non access Modifiers in Core Java Core Java Tutorial Modifiers in Java Modifiers are keywords that are added to change meaning of a definition. In Java, modifiers are catagorized into two types,

More information

Java Primer 1: Types, Classes and Operators

Java Primer 1: Types, Classes and Operators Java Primer 1 3/18/14 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Java Primer 1: Types,

More information

CSPP : Introduction to Object-Oriented Programming

CSPP : Introduction to Object-Oriented Programming CSPP 511-01: Introduction to Object-Oriented Programming Harri Hakula Ryerson 256, tel. 773-702-8584 hhakula@cs.uchicago.edu August 7, 2000 CSPP 511-01: Lecture 15, August 7, 2000 1 Exceptions Files: Text

More information

enum Types 1 1 The keyword enum is a shorthand for enumeration. Zheng-Liang Lu Java Programming 267 / 287

enum Types 1 1 The keyword enum is a shorthand for enumeration. Zheng-Liang Lu Java Programming 267 / 287 enum Types 1 An enum type is an reference type limited to an explicit set of values. An order among these values is defined by their order of declaration. There exists a correspondence with string names

More information

Apache Felix Framework Launching and Embedding

Apache Felix Framework Launching and Embedding Apache Felix Framework Launching and Embedding Apache Felix Framework Launching and Embedding [This document describes framework launching introduced in Felix Framework 2.0.0 and continuing with the latest

More information

CS Week 11. Jim Williams, PhD

CS Week 11. Jim Williams, PhD CS 200 - Week 11 Jim Williams, PhD This Week 1. Exam 2 - Thursday 2. Team Lab: Exceptions, Paths, Command Line 3. Review: Muddiest Point 4. Lecture: File Input and Output Objectives 1. Describe a text

More information

Java Code Coverage Mechanics

Java Code Coverage Mechanics at by Evgeny Mandrikov Java Code Coverage Mechanics #DevoxxFR Evgeny Mandrikov @_Godin_.com/Godin one of JaCoCo and Eclipse EclEmma Project Leads Disclaimer /* TODO don't forget to add huge disclaimer

More information

CS5000: Foundations of Programming. Mingon Kang, PhD Computer Science, Kennesaw State University

CS5000: Foundations of Programming. Mingon Kang, PhD Computer Science, Kennesaw State University CS5000: Foundations of Programming Mingon Kang, PhD Computer Science, Kennesaw State University Overview of Source Code Components Comments Library declaration Classes Functions Variables Comments Can

More information

CPSC 319. Week 2 Java Basics. Xiaoyang Liu & Sorting Algorithms

CPSC 319. Week 2 Java Basics. Xiaoyang Liu & Sorting Algorithms CPSC 319 Week 2 Java Basics Xiaoyang Liu xiaoyali@ucalgary.ca & Sorting Algorithms Java Basics Variable Declarations Type Size Range boolean 1 bit true, false char 16 bits Unicode characters byte 8 bits

More information

Sorting and Searching

Sorting and Searching CHAPTER 13 Sorting and Searching The exercises in this chapter are a framework for comparing algorithms empirically. This approach provides students with a means for understanding the finer details of

More information

BBM 102 Introduction to Programming II Spring Exceptions

BBM 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 information

1. Find the output of following java program. class MainClass { public static void main (String arg[])

1. Find the output of following java program. class MainClass { public static void main (String arg[]) 1. Find the output of following java program. public static void main(string arg[]) int arr[][]=4,3,2,1; int i,j; for(i=1;i>-1;i--) for(j=1;j>-1;j--) System.out.print(arr[i][j]); 1234 The above java program

More information