methods
play

Methods Constructors Instance methods Class methods 30 - PowerPoint PPT Presentation

Methods Constructors Instance methods Class methods 30 Constructors have the same name as the class do not return anything they begin with a call to the constructor from the parent class (super(...)) public class MyClass{


  1. Methods • Constructors • Instance methods • Class methods 30

  2. Constructors • have the same name as the class • do not return anything • they begin with a call to the constructor from the parent class (super(...)) public class MyClass{ public MyClass(){} ... MyClass mc = MyClass(); } 31

  3. Instance Method • are called on a reference to an instance • can return values • C-style declaration and value return public class MyClass{ public boolean test(){ return true;} } ... MyClass mc=new MyClass(); mc.test(); 32

  4. Class Method • Are called on the class name, instance names • declared static public class MyClass{ public static boolean test(){ return true;} } ... MyClass.test(); 33

  5. The main method • static, returns nothing, public, String[] as parameters public class MyClass{ public static void main(String[] args){...} } 34

  6. Inheritance • Methods and fields are inherited • They can be used in a child class without any redeclaration • They can be overriden • Overloading is ok 35

  7. Exercises • final & volatile? • static and multithreaded? • local variable usable from another class? • declare a String that would be visible from outside the package, shared by all instances and can be accessed concurrently. 36

  8. Why doesn’t it compile? public class HelloWorld { public String message="Hello World!"; public HelloWorld(String s){ super(); message=s; } } public class HelloWorld2 extends HelloWorld{ public HelloWorld2(String s){ message=s; } } 37

  9. Why doesn’t it compile? public class HelloWorld { public String message="Hello World!"; private HelloWorld(String s){ super(); message=s; } } public class HelloWorld2 extends HelloWorld{ public HelloWorld2(String s){ super(s); } } 38

  10. What happens here? public class Parent { public Parent wave(Parent p){ System.out.println("in the parent"); return null; } } public class Child extends Parent{ public Child wave(Object o){ System.out.println("in the child"); return null; } public static void main(String []args){ Parent p=new Child(); p.wave(p); } } 39

  11. ...and here? public class Parent { public Parent wave(Parent p){ System.out.println("in the parent"); return null; } } public class Child extends Parent{ public Child wave(Parent p){ System.out.println("in the child"); return null; } public static void main(String []args){ Parent p=new Child(); p.wave(p); } } 40

  12. What is invalid? public class HelloWorld{ String s="Hello World"; public static void main(String []args){ System.out.println(s); } } 41

  13. Expressions • Method Invocation • instanceof • Casts • blocks • control-flow structures 42

  14. Invoking Methods • Already saw that: MyClass mc = new MyClass(); mc.test(); MyClass.testStatic(); this.test(); test(); 43

  15. instanceof • instruction from the language • Returns a boolean mc instanceof MyClass 44

  16. Casts • Used to assign an instance of a super class to a variable of a subclass • May fail at runtime! String S = (String)myObject; 45

  17. Blocks • As in many languages blocks can be declared in place of any instruction and define a name space: { ... } 46

  18. if • if ( test ) block/instruction ; • if ( test ) block/instruction; else block/instruction; if (ms instanceof MyClass) if (!(ms instanceof String)) System.out.println(”MyClass not String”); else System.out.println(”not MyClass”); 47

  19. switch switch( expression ){ case constant : {} ... default: {} } 48

  20. while while ( test ){ ... } 49

  21. do...while do{ ... } while ( test ) 50

  22. for for ( init ; test ; loopInst ){ ... } 51

  23. Enhanced for • if the expression is Iterable (arrays are...) for( Type varName : expression ){ ... } 52

  24. break/continue • break breaks the innermost loop • continue goes back to its start • with labels: act on the labeled structure 53

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend