MT311 Java Application Development and Programming Languages - PowerPoint PPT Presentation

1 / 35
About This Presentation
Title:

MT311 Java Application Development and Programming Languages

Description:

it should have no return type. A constructor will be called when you use ... When you create a project in Netbeans, you will be asked about the package name. ... – PowerPoint PPT presentation

Number of Views:87
Avg rating:3.0/5.0
Slides: 36
Provided by: ouhkworkat
Category:

less

Transcript and Presenter's Notes

Title: MT311 Java Application Development and Programming Languages


1
MT311 Java Application Development and
Programming Languages
  • Li Tak Sing(???)

2
Constructor
  • A constructor is like a method except that
  • it should have the same name as the class
  • it should have no return type.
  • A constructor will be called when you use the
    'new' keyword to create an instance of a class.

3
Default Constructors
  • If you do not provide any constructor, the Java
    will create a default constructor for it.

4
Default Constructors
  • When the default constructor is executed, all its
    attributes will be initialized according to the
    following rules
  • if the attribute is numerical, like int, byte,
    float etc., the attribute is assigned the value
    of 0.
  • if the attribute is a class variable, then it is
    initialized to "null" which represent that the
    variable is not referring to any object yet.
  • if the attribute is boolean, then it will be
    assigned the value of false.

5
Default Constructors
  • public class ABC
  • int a
  • float b
  • boolean c
  • ABC d
  • public static void main(String st)
  • ABC abcnew ABC() //default constructor
  • System.out.println(abc.a" "abc.b"
    "abc.c" "abc.d)

6
Default Constructors
  • The output of the above program is
  • 0 0.0 false null

7
Default Constructors
  • If you want to initialize the attributes to other
    value, you can do it like thispublic class ABC
  • int a1
  • float b2
  • boolean ctrue
  • ABC dnull
  • public static void main(String st)
  • ABC abcnew ABC()
  • System.out.println(abc.a" "abc.b"
    "abc.c" "abc.d)

8
Default Constructors
  • The output of the above program is
  • 1 2.0 true null

9
Constructors
  • The above method has a problem in that all
    instance of ABC would be the same when they are
    just created, i.e., the attribute a will
    definitely be 1, the attribute b will be 2.0 etc.
  • If we want to have the attributes initialized to
    different values depending on different
    situations, we need to write our own constructors.

10
Constructor
  • A constructor is a piece of code that will be
    executed when a new instance of class is created.
  • Just like methods, a constructor can have a
    number of parameters.
  • Just like methods, you overload a constructor
    provided that these constructors have different
    signatures.
  • Unlike methods, a constructor cannot have return
    value.

11
Constructors
  • public class ABC
  • int a1
  • float b2
  • boolean ctrue
  • public ABC(int aa)
  • aaa
  • public ABC(float bb)
  • bbb
  • public ABC(boolean cc)
  • ccc

12
Constructors
  • ...
  • ABC a1new ABC() //error, now ABC does not have
    a default
  • // constructors
  • ABC a2new ABC(10) //a2.a10, a2.b 2.0, a2.c
    true
  • ABC a3new ABC(10.0) //a3.a1, a3.b10.0, a3.c
    true
  • ABC a4new ABC(false) //a3.a1, a3.b2.0,
    a3.cfalse.

13
Constructors
  • Consider a change in ABC
  • public class ABC
  • int a1
  • float b2
  • boolean ctrue
  • public ABC(float bb)
  • bbb
  • public ABC(boolean cc)
  • ccc

14
Constructor
  • ...
  • ABC a1new ABC() //error, now ABC does not have
    a default
  • // constructors
  • ABC a2new ABC(10) //a2.a1, a2.b 10.0, a2.c
    true
  • ABC a3new ABC(10.0) //a3.a1, a3.b10.0, a3.c
    true
  • ABC a4new ABC(false) //a3.a1, a3.b2.0,
    a3.cfalse.

15
Garbage collection
  • When you create a new object, it takes up the
    computer's resources. So as you create more and
    more objects, it is possible that all the
    computer's resources are used up.
  • So it is necessary to release those resources
    that have been taken up by objects that will
    never be used again.

16
Garbage Collection
  • Consider the following code
  • for (int i0ilt10i)
  • ABC abcnew ABC()
  • ....
  • In each loop, an ABC is created. Assume that
    once the loop is finished, these ABCs are no
    longer used and referenced, then the resources
    taken up by these ABCs can be released to other
    use.

17
Garbage collection
  • In Java, this is done by a process called garbage
    collection.
  • From time to time, the process will check whether
    there are resources that are taken up by objects
    that are no long used. It will then release the
    resources back to the system.

18
Finalize
  • When the garbage collection process is releasing
    the resource taken up by an object, it is
    possible that this object is holding some
    important information. For example, this object
    may have an opened file with some contents that
    have not been written to the file properly. So
    by releasing the resources held by the object may
    result in loosing this contents.

19
Finalize
  • In order to prevent this from happening, we need
    to have some code to close the file before the
    resources are released.
  • We need to use the finalize method for this
    purpose.

20
Finalize
  • The finalize method must have no parameters and
    no return type. So it is always declared
    aspublic void finalize()
  • When the garbage collector is going to release
    the resource of an object, it will invoke the
    finalize method of the object first.

21
Finalize
  • So it is the programmer's responsibility to put
    the code in the finalize method to do whatever it
    need to do before the resources are released, for
    example, close a file or close a network
    connection.
  • However, in real Java applications, you rarely
    use the finalize method because it is usually
    good habit to close a file when you are done with
    the file. Not to wait until the object is
    garbage collected.

22
Packages
  • A package is a collection of classes.
  • It is very similar to directories in a file
    system.
  • In a file system, a directory can have a number
    of other directories and files.
  • So a package can contain a number of other
    packages and classes.

23
Packages
  • For example, you have been using the following
    command many timesSystem.out.println("....")
    Actually, System is a class defined in Package
    java.lang. So here, java is a package, lang is
    also a package that is defined in java and then
    System is a class defined in lang. Then, out is a
    static object of the class System. println is a
    method of the object out.

24
Packages
  • So actually, the above statement can be changed
    asjava.lang.System.out.println("...")

25
Packages
  • The following statement in a java file define the
    package that the class is inpackage myPackage
  • When a class is defined in myPackage, then the
    class file should be put under a directory called
    myPackage.

26
Packages
  • Consider the following java filepackage
    abc.defpublic class MyClass public void
    method() .... static int
    aStaticVariable2

27
Packages
  • After compilation of the file, the MyClass.class
    file should be put in the following
    directoryabc/def
  • When other programs wants to use MyClass, it can
    be referred to asabc.def.MyClass

28
Packages
  • If you do not want to use that long name, you can
    have the following statementimport
    abc.def.MyClassThis statement will tell the
    compiler where to find MyClass and therefore we
    can simply refer to the class by using MyClass,
    not the full name.

29
Packages
  • The way of using the import keyword isimport
    abc.def.This statement inform the compiler to
    look for all classes in the package abc.def, not
    just MyClass as that in the last statement. So
    all classes defined in the directory abc/def can
    be used without the need of the full name.

30
Packages
  • So, when you want to use a class ABC in a package
    def.ghi, you can do either of the following ways
  • use the full name def.ghi.ABC
  • include the statement import def.ghi.ABC and
    then you can refer to the class as ABC in the
    program.
  • include the statement import def.ghi. and then
    you can refer to the class as ABC.

31
Packages
  • There are three situations where you do not need
    to specify the package at all
  • The code that uses the class is in the same
    package of the class.
  • The class belongs to the package java.lang. This
    package hold the most fundamental classes of Java
    and therefore there is no need to use either the
    import statement or the full name for classes in
    that directory.
  • The class does not belong to any package.

32
Packages
  • That is why when you use System.out.println(".."),
    you do not need to preceed it with java.lang.

33
Packages
  • When you create a project in Netbeans, you will
    be asked about the package name. Then, usually,
    when you create a class, the class will be placed
    in that package.

34
Where to find a package
  • We know that when a class ABC is defined in a
    package def.ghi, then ABC.class should be found
    in the directory def/ghi. However, how can the
    Java system knows where is def/ghi? The is done
    by either using the environment variable called
    CLASSPATH or you can set the classpath when you
    run the java commandjava -classpath... ABC

35
Where to find a package
  • The other way is that Java will look for the
    current directory. ABC.class is actually
    at/jkl/mno/def/ghi/ABC.class,
  • Then, in order for the Java interpreter to find
    the class, we can set the classpath to /jkl/mno
    or we run the command at the directory /jkl/mno.
Write a Comment
User Comments (0)
About PowerShow.com