一、建立對象
對象是根據類建立的。在Java中,使用關鍵字new來建立一個新的對象。建立對象需要以下三步:
聲明:聲明一個對象,包括對象名稱和對象類型。
執行個體化:使用關鍵字new來建立一個對象。
始化:使用new建立對象時,會調用構造方法初始化對象。
建立對象的例子1:
public class Puppy{
public Puppy(String name){
//這個構造器僅有一個參數:name
System.out.println("小狗的名字是 : " + name );
}
public static void main(String []args){
// 下面的語句将建立一個Puppy對象
Puppy myPuppy = new Puppy( "tommy" );
}
}
運作結果: 小狗的名字是 : tommy
例子2:
public class Puppy{
public Puppy(int age) {
System.out.println("Puppy的年齡是:"+age);
}
public static void main(String[] args) {
Puppy myPuppy = new Puppy(18);
}
}
二、執行個體化
執行個體化是指在面向對象的程式設計中,通常把用類建立對象的過程稱為執行個體化。格式化有類名,對象名 = new 類名(參數1,參數2...參數n)
如 Date date=new Date();就是用日期類建立了一個日期的對象,就叫對象的執行個體化。
多數語言中,執行個體化一個對象就是為對象開辟記憶體空間,或者是不用聲明,直接使用new 構造函數名,建立一個臨時對象。
Java舉例如下:
public class A{
public static void main(String[] args){
B b = new B();//執行個體化
b.print();
}
}
class B{
public void print(){
System.out.println("Hello,World!");
}
}
三、類變量:
類變量聲明在類中、方法體之外、但必須聲明為static類型
四、構造方法
每個類都有構造方法、建立類必須有一個構造方法、構造方法要和類同名
一個類可以有多個構造方法
public class Puppy{
public Puppy(){
}
public Puppy(String name){
// 這個構造器僅有一個參數:name
}
}
五、通路執行個體變量和方法:
通過建立的對象來通路成員變量和成員方法
/* 執行個體化對象 */
ObjectReference = new Constructor();
/* 通路類中的變量 */
ObjectReference.variableName;
/* 通路類中的方法 */
ObjectReference.MethodName();
執行個體如下:
通路執行個體變量和調用成員方法
public class Puppy {
int puppyAge; // 類變量
public Puppy(String name) {
// 這個構造器僅有一個參數:name
System.out.println("小狗的名字是 : " + name);
}
public void setAge(int age) {
puppyAge = age;
}
public int getAge() {
System.out.println("小狗的年齡為 : " + puppyAge);
return puppyAge;
}
public static void main(String[] args) {
/* 建立對象 */
Puppy myPuppy = new Puppy("tommy");
/* 通過方法來設定age */
myPuppy.setAge(2);
/* 調用另一個方法擷取age */
myPuppy.getAge();
/* 你也可以像下面這樣通路成員變量 */
System.out.println("變量值 : " + myPuppy.puppyAge);
}
}
運作結果:
小狗的名字是 : tommy
小狗的年齡為 : 2
變量值 : 2
六、Java包
編寫程式時可能編寫上成百上千的類、Java包主要用來對類和接口進行分類
七、import語句
Java中給包名、類名 Java編譯器很容易定位到源代碼 import語句就是提供一個合理的路徑
使編譯器可以找到某各類
八、舉例子:
建立倆個類 Employee和EmployeeTest
Employee類有四個成員變量:name、age、designation和salary 該類顯示聲明了一個構造方法
該方法隻有一個參數
代碼如下:
import java.io.*;
public class Employee{
String name;
int age;
String designation;
double salary;
// Employee 類的構造器
public Employee(String name){
this.name = name;
}
// 設定age的值
public void empAge(int empAge){
age = empAge;
}
/* 設定designation的值*/
public void empDesignation(String empDesig){
designation = empDesig;
}
/* 設定salary的值*/
public void empSalary(double empSalary){
salary = empSalary;
}
/* 列印資訊 */
public void printEmployee(){
System.out.println("名字:"+ name );
System.out.println("年齡:" + age );
System.out.println("職位:" + designation );
System.out.println("薪水:" + salary);
}
}
Main函數調用:
包含main方法 并建立一個執行個體對象 EmployeeTest類執行個體化2個Employee類并調用方法設定變量的值
public class EmployeeTest{
public static void main(String args[]){
/* 使用構造器建立兩個對象 */
Employee empOne = new Employee("RUNOOB1");
Employee empTwo = new Employee("RUNOOB2");
// 調用這兩個對象的成員方法
empOne.empAge(26);
empOne.empDesignation("進階程式員");
empOne.empSalary(1000);
empOne.printEmployee();
empTwo.empAge(21);
empTwo.empDesignation("菜鳥程式員");
empTwo.empSalary(500);
empTwo.printEmployee();
}
}
運作結果:
名字:RUNOOB1
年齡:26
職位:進階程式員
薪水:1000.0
名字:RUNOOB2
年齡:21
職位:菜鳥程式員
薪水:500.0