1 / 18

Advanced Programming in Java

Advanced Programming in Java. Sadegh Aliakbary Sharif University of Technology Spring 2011. Agenda. Init methods Constructors No Destructor Initialization Cleanup. Initialization. An instantiated object, is not a ready object It may be and invalid object Person p = new Person();

oded
Download Presentation

Advanced Programming in Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Advanced Programming in Java SadeghAliakbary Sharif University of Technology Spring 2011

  2. Agenda • Init methods • Constructors • No Destructor • Initialization • Cleanup Sharif University of Technology

  3. Initialization • An instantiated object, is not a ready object • It may be and invalid object • Person p = new Person(); • p is an object without name, id and, … • p is an invalid object • It should be initialized Sharif University of Technology

  4. publicclass Student { //Mandatory private String name; privatelongid; //Optional private String homepage; ... } Sharif University of Technology

  5. publicvoidsetName(String s) { if(s != null && !"".equals(s.trim()) && s.matches("[a-zA-Z ]+")) name= s; } publicvoidsetId(longidValue) { if (id > 10000000 && id < 100000000) id= idValue; } publicvoidsetHomepage(String addr) { homepage= addr; } Sharif University of Technology

  6. Initialization Method publicvoid init(String name, long id) { setName(name); setId(id); } Sharif University of Technology

  7. Using the Object publicstaticvoid main(String[] args) { Student st = new Student(); // st is an invalid object now st.init("Hossein Alizadeh", 45205068); // st is initialized now. ready to be used System.out.println(st.getName()); System.out.println(st.getId()); } Sharif University of Technology

  8. Other Examples Circle c = new Circle(); c.init(12); Book b1 = new Book(); b1.init(“من او”, “رضا اميرخانی”); Book b2 = new Book(); b2.init(“شاهنامه”, “ابوالقاسم فردوسی”); Sharif University of Technology

  9. init() Method • Init method is invoked manually • There is no guarantee for init invocation • Before calling init method, the object has an invalid state Sharif University of Technology

  10. Constructors • Constructor is a special method • With same name as the class • Without any return type • is called when an object is instantiated • No invalid object Sharif University of Technology

  11. Default Constructor • Constructors may have parameters • Default constructor : no parameter • Is implicitly implemented • You can write your own default-constructor • If you write any constructor, default implicit constructor is vanished. Sharif University of Technology

  12. Constructor example Sharif University of Technology

  13. Sharif University of Technology

  14. Sharif University of Technology

  15. Constructors usually instantiate their properties publicclass Car { private Engine engine; privateTyre[] tyres; public Car() { engine = new Engine(); tyres = newTyre[4]; for (int i = 0; i < tyres.length; i++) { tyres[i] = newTyre(); } } } • Who destructs what constructors has built? Sharif University of Technology

  16. Destructor • Java needs no destructor • Destructor method in C++ • Java has a finalize() method • You can implement it for your class Sharif University of Technology

  17. Finalize method • Java has no delete • Java has no destructor • Java has a special method: finalize • finilize() is called when the object is garbage-collected • Why we may need finalize? • Garbage collection is only about memory Sharif University of Technology

  18. Sharif University of Technology

More Related