r = obj2.m( 0, 1 ); s = obj2.f; r = obj2.m( ); r = obj2.anothermethod( 0, 1 ); s = obj2.anotherfield;
|
|
- Cora Parks
- 6 years ago
- Views:
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 Chair of Programming Methodology Autumn Semester 2017 1.2 Introduction Core Concepts 2 Meeting the Requirements Cooperating Program Parts with Well-Defined
More informationJava 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 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 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 informationAnnouncement. 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 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 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 informationFile 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 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 informationFull 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 informationCS5000: 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 informationInput 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 informationUnit 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 informationStudying 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 informationGetting 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 informationWhat%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 informationExceptions 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 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 informationTools : 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 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 informatione) 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 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 informationChapter 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 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 informationLab 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 informationCHETTINAD 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 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 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 informationGlobalLogic 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 information4. 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 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. 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 informationChair 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 informationNetwork. 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 informationComp 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 informationArchitecture of so-ware systems
Architecture of so-ware systems Lecture 13: Class/object ini
More informationStd 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 information1. 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 information2018/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 informationJava 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 informationThe 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 informationA 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 informationDynamic 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 informationClasses 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 informationDo 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 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 informationCS2141 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 informationUniversity 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 informationJava 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 information9 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 informationCOE318 Lecture Notes Week 10 (Nov 7, 2011)
COE318 Software Systems Lecture Notes: Week 10 1 of 5 COE318 Lecture Notes Week 10 (Nov 7, 2011) Topics More about exceptions References Head First Java: Chapter 11 (Risky Behavior) The Java Tutorial:
More informationJAVA 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 informationProfiler 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 informationJava 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 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 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 informationINDEX. A SIMPLE JAVA PROGRAM Class Declaration The Main Line. The Line Contains Three Keywords The Output Line
A SIMPLE JAVA PROGRAM Class Declaration The Main Line INDEX The Line Contains Three Keywords The Output Line COMMENTS Single Line Comment Multiline Comment Documentation Comment TYPE CASTING Implicit Type
More 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/pl2009 PLC 2009, Lecture 2, 19 January 2009 Classes and
More informationProgramming 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 informationWeek 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 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 informationHere is a hierarchy of classes to deal with Input and Output streams.
PART 15 15. Files and I/O 15.1 Reading and Writing Files A stream can be defined as a sequence of data. The InputStream is used to read data from a source and the OutputStream is used for writing data
More informationWhat 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 informationSpecial 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 informationCSc 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 informationInheritance (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 informationSoftware 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 informationFINAL 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 informationMSc/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 informationCS506 Web Design & Development Final Term Solved MCQs with Reference
with Reference I am student in MCS (Virtual University of Pakistan). All the MCQs are solved by me. I followed the Moaaz pattern in Writing and Layout this document. Because many students are familiar
More informationReverse 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 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 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 informationOBJECT 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 informationJava 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 informationCSc 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 informationCS321 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 informationJava 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 informationExceptions 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 informationCSc 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 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 information6.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 informationCMSC 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 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 informationd. 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 informationReview 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 informationTEST (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 informationAccess 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 informationJava 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 informationCSPP : 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 informationenum 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 informationApache 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 informationCS 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 informationJava 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 informationCS5000: 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 informationCPSC 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 informationSorting 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 informationBBM 102 Introduction to Programming II Spring Exceptions
BBM 102 Introduction to Programming II Spring 2018 Exceptions 1 Today What is an exception? What is exception handling? Keywords of exception handling try catch finally Throwing exceptions throw Custom
More information1. 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