Java是目前應用最為廣泛的面向對象特的語言,它具有以下基本概念:
類對象方法抽象化多態性繼承封裝我們首先看看類和對象的概念。
類是一個模版。是一個可以定義一類具有相同屬性、行為的模版。
例如:狗是一個類,它具有四肢、尾巴、頭、脊椎等屬性,具有吠叫、吃、繁殖等行為。
對象是一個具體實例。根據是一個類的具體實例。
例如:我家對門養的一只狗,具體到了某一只。
類的定義如下︰
public class Dog{
String breed;
int age;
String color;
void barking(){
}
void hungry(){
}
void sleeping(){
}
}
類有以下關鍵點:
1、類可以包含以下任意類型的變量。構造函數的例子如下︰
public class Puppy{
public Puppy(){
}
public Puppy(String name){
// This constructor has one parameter, name.
}
}
Java還支持單實例類,在這裡能夠創建的類只有一個實例。
如前面提到的,類提供的是模版,所以基本上一個對象是根據一個類創建的。
在Java中,使用關鍵字new創建新的對象。
根據類創建對象有三個步驟:
- 聲明: 變量聲明,一個變量名的對象類型。
- 實例化: 使用new關鍵字創建對象。
- 初始化: 關鍵字new後跟調用一個構造函數。初始化新的對象。
創建對象的實例:
public class Puppy{
public Puppy(String name){
// This constructor has one parameter, name.
System.out.println("Passed Name is :" + name );
}
public static void main(String []args){
// Following statement would create an object myPuppy
Puppy myPuppy = new Puppy( "tommy" );
}
}
將產生以下結果:
Passed Name is :tommy
實例變量和方法是通過剛才創建的對象來訪問的。
要訪問一個實例變量和方法如下:
/* First create an object */
ObjectReference = new Constructor();
/* Now call a variable as follows */
ObjectReference.variableName;
/* Now you can call a class method as follows */
ObjectReference.MethodName();
例子:
public class Puppy{
int puppyAge;
public Puppy(String name){
// This constructor has one parameter, name.
System.out.println("Passed Name is :" + name );
}
public void setAge( int age ){
puppyAge = age;
}
public int getAge( ){
System.out.println("Puppy's age is :" + puppyAge );
return puppyAge;
}
public static void main(String []args){
/* Object creation */
Puppy myPuppy = new Puppy( "tommy" );
/* Call class method to set puppy's age */
myPuppy.setAge( 2 );
/* Call another class method to get puppy's age */
myPuppy.getAge( );
/* You can access instance variable as follows as well */
System.out.println("Variable Value :" + myPuppy.puppyAge );
}
}
將產生以下結果:
Passed Name is :tommy
Puppy’s age is :2
Variable Value :2