天天看點

第三章 補充案例

10.Person對象的建立及使用過程

類的方法聲明

public String getName() {

return name;

}

public void display() {

System.out.println(“姓名:” + name + “,年齡:” + age

  • “,位址:” + address);

    }

    11.程式引用傳遞的執行過程

    12.方法重載

    三個原則:

    在同一個類中;

    方法名相同;

    參數清單不同,即參數的個數、或對應位置上的類型不同。

    public int add(int a, int b) {

    return a + b;

    }

    public float add(float a, float b) {

    return a + b;

    }

    public double add(double a, double b) {

    return a + b;

    }

    13.構造方法

    1)方法名和類名相同

    2)方法名的前面沒有傳回值類型的聲明

    3)方法中不能使用return語句傳回一個值

    14.類的構造器

    具有特點和作用:

    1)構造方法是用類名作構造方法名;

    2)構造方法具有參數和語句體,但沒有傳回類型的聲明。如果有傳回類型

    聲明,則此方法就再不是構造方法,而成為一個一般的成員方法;

    3)構造方法不是類的成員方法,是以不能用對象調用它。

    4)構造方法的調用是由new運算符實作;

    5)構造方法傳回的是這個類的執行個體的引用;

    6)構造方法中的語句實作對成員變量的初始化;

    7)構造方法的方法過載。一個類可以有多個構造方法;

    8)構造方法之間通過this()形式互相調用。

    類的構造方法又可以分為兩種

    1)預設構造方法

    2)非預設構造方法。

    15.this 關鍵字

    1).指代對象本身

    this用于指代調用成員方法的目前對象自身。文法格式:this

    2). this通路本類的成員變量和成員方法

    this關鍵字可以出現在類的執行個體方法中,代表使用該方法的目前對象。

    this.成員變量

    this.成員方法

    3).在構造方法中使用this

    this關鍵字可以出現在類的構造方法中,代表使用該構造方法所建立的對象。注意:隻能在構造方法裡使用

    this([參數清單])

    16.對象的淺拷貝與深拷貝

例子:package com.imau.test3;

public class StuManage {

// 學生資訊存儲:50;

private Student stus[];

private static int count;

public StuManage() {

stus = new Student[50];
 
 for(int i=0;i<3;++i) {
 	stus[i]=new Student(20180+i,"AA"+i,"wl");
 	++count;
 }
           

}

// 添加學生資訊

public boolean add(Student student) {

if (count > stus.length) {
 	return false;
 }

 stus[count++] = student;
 return true;
           

}

//3

public boolean del(int stuNo) {

// 1.周遊學生數組,找到學生資訊位置

for (int i = 0; i < count; ++i) {

if (stuNo == stus[i].getStuNo()) {
 		// 2.删除;後邊元素往前移動
 		for (int j = i; j < count - 1; ++j) {
 			stus[j] = stus[j + 1];
 		}

 		count--;
 		return true;
 	}
 }

 return false;
           

}

public boolean del(Student student) {

// 1.周遊學生數組,找到學生資訊位置

for (int i = 0; i < count; ++i) {

if (student.getStuNo() == stus[i].getStuNo()) {
 		// 2.删除;後邊元素往前移動
 		for (int j = i; i < count - 1; ++j) {
 			stus[j] = stus[j + 1];
 		}

 		return true;
 	}
 }

 return false;
           

}

public boolean update(Student oldStu, Student newStu) {

// 1.周遊學生數組,找到學生資訊位置
 for (int i = 0; i < count; ++i) {

 	if (oldStu.getStuNo() == stus[i].getStuNo()) {
 		// 2.替換;後邊元素往前移動

 		stus[i] = newStu;
 		return true;
 	}