天天看點

Java知識5 建立對象 執行個體化 構造方法【多測師】

一、建立對象
對象是根據類建立的。在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