Thứ Tư, 26 tháng 2, 2014

Tài liệu Initialization ppt

Initialization
2
Objectives

Present field initialization options for fields

default values

variable initializers

constructors
3
Instance field default values

Instance fields set to default values when object created

0 for numeric types

false for bool

'\x0000' for char

null for references
set to default values
Rational a = new Rational();
instance fields
class Rational
{
int numerator;
int denominator;

}
numerator 0
denominator 0
a
4
Variable initializer

Instance fields can be initialized at point of definition

called variable initializer

executed each time an object is created

convenient way to overwrite default values
initialize
class Rational
{
int numerator;
int denominator = 1;

}
5
Constructor

Class can supply constructor to do initialization

automatically invoked when object created

implemented using same name as class with no return type
constructor
class Rational
{
int numerator;
int denominator;
public Rational(int numerator, int denominator)
{
this.numerator = numerator;
this.denominator = denominator;
}

}
6
Invoking constructor

Constructor automatically invoked when object created
create object,
invoke constructor
Rational a = new Rational(2, 5);
numerator 2
denominator 5
a
7
Multiple constructors

Class can supply multiple constructors

parameter lists must be different
constructor
class Rational
{
public Rational(int numerator, int denominator)
{
this.numerator = numerator;
this.denominator = denominator;
}
public Rational(int numerator)
{
this.numerator = numerator;
this.denominator = 1;
}

}
constructor
8
Default constructor

Can supply constructor that takes no arguments

often called the default constructor
no argument
constructor
class Rational
{
public Rational()
{
this.denominator = 1;
}

}
9
Selecting constructor to invoke

Compiler selects constructor version automatically

based on arguments passed
two ints
Rational a = new Rational(2, 5);
Rational b = new Rational(6);
Rational c = new Rational();
one int
no arguments
10
Constructor initializer

One constructor can invoke another constructor

use :this( ) syntax before constructor body

called constructor initializer

can put common code in constructor that others call
class Rational
{
public Rational(int numerator, int denominator)
{
this.numerator = numerator;
this.denominator = denominator;
}
public Rational(int numerator)
:this(numerator, 1)
{

}

}
call 2 argument
constructor
11
Compiler generated constructor

Compiler creates default constructor

only if no constructors supplied by programmer

Compiler generated constructor

takes no arguments

has empty body

calls no argument constructor for base class
12
Initialization order

Initialization options executed in well defined order
1. fields set to default values
2. variable initializers run in textual order top to bottom
3. constructor executed

Không có nhận xét nào:

Đăng nhận xét