1. 程式人生 > 實用技巧 >學習java基礎第七天

學習java基礎第七天

1. 類和物件

面向物件和麵向過程的思想對比 :

面向過程 :是一種以過程為中心的程式設計思想,實現功能的每一步,都是自己實現的

面向物件 :是一種以物件為中心的程式設計思想,通過指揮物件實現具體的功能

1.1 類和物件的關係

客觀存在的事物皆為物件 ,所以我們也常常說萬物皆物件。

    • 類的理解

      • 類是對現實生活中一類具有共同屬性和行為的事物的抽象

      • 類是物件的資料型別,類是具有相同屬性和行為的一組物件的集合

      • 簡單理解:類就是對現實事物的一種描述

    • 類的組成

      • 屬性:指事物的特徵,例如:手機事物(品牌,價格,尺寸)

      • 行為:指事物能執行的操作,例如:手機事物(打電話,發簡訊)

  • 類和物件的關係

    • 類:類是對現實生活中一類具有共同屬性和行為的事物的抽象

    • 物件:是能夠看得到摸的著的真實存在的實體

    • 簡單理解:類是對事物的一種描述,物件則為具體存在的事物

1.2 類的定義【應用】

類的組成是由屬性和行為兩部分組成

  • 屬性:在類中通過成員變數來體現(類中方法外的變數)

  • 行為:在類中通過成員方法來體現(和前面的方法相比去掉static關鍵字即可)

類的定義步驟:

① 定義類

② 編寫類的成員變數

③ 編寫類的成員方法

/*
類檔案:
*/
public class Student {
// 屬性 : 姓名, 年齡
// 成員變數: 跟之前定義變數的格式一樣, 只不過位置發生了改變, 類中方法外
String name;
int age;

// 行為 : 學習
// 成員方法: 跟之前定義方法的格式一樣, 只不過去掉了static關鍵字.

public void study(){
System.out.println("學習");
}
}

1.3 物件的建立和使用

  • 建立物件的格式:

    • 類名 物件名 = new 類名();

  • 呼叫成員的格式:

    • 物件名.成員變數

    • 物件名.成員方法();

  • 示例程式碼 :

/*
測試檔案:

*/
package com.itheima.object1;

public class TestStudent {
/*
建立物件的格式:
類名 物件名 = new 類名();
呼叫成員變數的格式:
物件名.變數名
呼叫成員方法的格式:
物件名.方法名();
*/
public static void main(String[] args) {
// 類名 物件名 = new 類名();
Student stu = new Student();
// 物件名.變數名
// 預設初始化值
System.out.println(stu.name); // null
System.out.println(stu.age); // 0

stu.name = "張三";
stu.age = 23;

System.out.println(stu.name); // 張三
System.out.println(stu.age); // 23

// 物件名.方法名();
stu.study();
// com.itheima.object1.Student@b4c966a
// 全類名(包名 + 類名)
System.out.println(stu);
}
}

1.4 案例-手機類的建立和使用

需求 :首先定義一個手機類,然後定義一個手機測試類,在手機測試類中通過物件完成成員變數和成員方法的使用

分析 :

  • 成員變數:品牌, 價格

  • 成員方法:打電話, 發簡訊

  • 示例程式碼:

類檔案:
package com.itheima.test1;

public class Phone {
// 品牌, 價格
String brand;
int price;

// 打電話, 發簡訊
public void call(String name){
System.out.println("給"+name+"打電話");
}

public void sendMessage(){
System.out.println("群發簡訊");
}
}
/*
測試檔案:
*/
package com.itheima.test1;

public class TestPhone {
public static void main(String[] args) {
// 1. 建立物件
Phone p = new Phone();
// 2. 給成員變數進行賦值
p.brand = "大米";
p.price = 2999;
// 3. 列印賦值後的成員變數
System.out.println(p.brand + "..." + p.price);
// 4. 呼叫成員方法
p.call("阿強");
p.sendMessage();
}
}

2. 物件記憶體圖

2.1 單個物件記憶體圖【理解】

2.2 多個物件記憶體圖【理解】

  • 總結:

    多個物件在堆記憶體中,都有不同的記憶體劃分,成員變數儲存在各自的記憶體區域中,成員方法多個物件共用的一份

2.3 多個物件指向相同記憶體圖【理解】

  • 總結 :

    當多個物件的引用指向同一個記憶體空間(變數所記錄的地址值是一樣的)

    只要有任何一個物件修改了記憶體中的資料,隨後,無論使用哪一個物件進行資料獲取,都是修改後的資料。

3. 成員變數和區域性變數

3.1 成員變數和區域性變數的區別

  • 類中位置不同:成員變數(類中方法外)區域性變數(方法內部或方法宣告上)

  • 記憶體中位置不同:成員變數(堆記憶體)區域性變數(棧記憶體)

  • 生命週期不同:成員變數(隨著物件的存在而存在,隨著物件的消失而消失)區域性變數(隨著方法的呼叫而存在,醉著方法的呼叫完畢而消失)

  • 初始化值不同:成員變數(有預設初始化值)區域性變數(沒有預設初始化值,必須先定義,賦值才能使用)

4. 封裝

4.1 private關鍵字

概述 : private是一個修飾符,可以用來修飾成員(成員變數,成員方法)

特點 : 被private修飾的成員,只能在本類進行訪問,針對private修飾的成員變數,如果需要被其他類使用, 提供相應的操作

提供“get變數名()”方法,用於獲取成員變數的值,方法用public修飾

提供“set變數名(引數)”方法,用於設定成員變數的值,方法用public修飾

示例程式碼:

/*
學生類檔案:
*/
public class Student {
//成員變數
String name;
private int age;

//提供get/set方法
public void setAge(int a) {
if(a<0 || a>120) {
System.out.println("你給的年齡有誤");
} else {
age = a;
}
}

public int getAge() {
return age;
}

//成員方法
public void show() {
System.out.println(name + "," + age);
}
}
/*
學生測試類:
*/
public class StudentDemo {
public static void main(String[] args) {
//建立物件
Student s = new Student();
//給成員變數賦值
s.name = "林青霞";
s.setAge(30);
//呼叫show方法
s.show();
}
}

4.2 private關鍵字的使用

  • 需求:

    • 定義標準的學生類,要求name和age使用private修飾

    • 並提供set和get方法以及便於顯示資料的show方法

    • 測試類中建立物件並使用,最終控制檯輸出 林青霞,30

  • 示例程式碼:

    /*
    學生類:
    */
    class Student {
    //成員變數
    private String name;
    private int age;

    //get/set方法
    public void setName(String n) {
    name = n;
    }

    public String getName() {
    return name;
    }

    public void setAge(int a) {
    age = a;
    }

    public int getAge() {
    return age;
    }

    public void show() {
    System.out.println(name + "," + age);
    }
    }
    /*
    學生測試類:
    */
    public class StudentDemo {
    public static void main(String[] args) {
    //建立物件
    Student s = new Student();

    //使用set方法給成員變數賦值
    s.setName("林青霞");
    s.setAge(30);

    s.show();

    //使用get方法獲取成員變數的值
    System.out.println(s.getName() + "---" + s.getAge());
    System.out.println(s.getName() + "," + s.getAge());

    }
    }

4.3 this關鍵字【應用】

概述 : this修飾的變數用於指代成員變數,其主要作用是(區分區域性變數和成員變數的重名問題)

  • 方法的形參如果與成員變數同名,不帶this修飾的變數指的是形參,而不是成員變數

  • 方法的形參沒有與成員變數同名,不帶this修飾的變數指的是成員變數

程式碼實現 :

/*

類檔案:

*/

public class Student {
private String name;
private int age;

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setAge(int age) {
this.age = age;
}

public int getAge() {
return age;
}

public void show() {
System.out.println(name + "," + age);
}
}

4.4 this記憶體原理【理解】

  • 注意 : this代表當前呼叫方法的引用,哪個物件呼叫的方法,this就代表哪一個物件

  • 圖解 :

4.5 封裝思想

  1. 封裝概述 是面向物件三大特徵之一(封裝,繼承,多型) 是面向物件程式語言對客觀世界的模擬,客觀世界裡成員變數都是隱藏在物件內部的,外界是無法直接操作的

  2. 封裝原則 將類的某些資訊隱藏在類內部,不允許外部程式直接訪問,而是通過該類提供的方法來實現對隱藏資訊的操作和訪問 成員變數private,提供對應的getXxx()/setXxx()方法

  3. 封裝好處 通過方法來控制成員變數的操作,提高了程式碼的安全性 把程式碼用方法進行封裝,提高了程式碼的複用性

5. 構造方法

5.1 構造方法的格式和執行時機

  • 格式注意 :

    • 方法名與類名相同,大小寫也要一致

    • 沒有返回值型別,連void都沒有

    • 沒有具體的返回值(不能由retrun帶回結果資料)

  • 執行時機 :

    • 建立物件的時候呼叫,每建立一次物件,就會執行一次構造方法

    • 不能手動呼叫構造方法

  • 示例程式碼:

/*

類檔案:

*/

public class Student {
private String name;
private int age;

//構造方法
public Student() {
System.out.println("無參構造方法");
}

public void show() {
System.out.println(name + "," + age);
}
}
/*
測試類:
*/
public class StudentDemo {
public static void main(String[] args) {
//建立物件
Student s = new Student();
s.show();
}
}

5.2 構造方法的作用

  • 用於給物件的資料(屬性)進行初始化

package com.itheima.constructor;
​/*
類檔案:
*/
public class Student {
/*
格式:

1. 方法名需要跟類名相同, 大小寫也要一致
2. 沒有返回值型別, 連void都沒有
3. 沒有具體的返回值(不能由return帶回具體的結果)
*/

private String name;
private int age;

// 1. 如果一個類中沒有編寫任何構造方法, 系統將會提供一個預設的無引數構造方法
public Student(){}

// 2. 如果手動編寫了構造方法, 系統就不會再提供預設的無引數構造方法了
public Student(String name, int age){
this.name = name;
this.age = age;
System.out.println("我是Student類的構造方法");
}

public void show(){
System.out.println(name + "..." + age);
}
}
package com.itheima.constructor;
​/*
測試檔案:
*/
public class TestStudent {
public static void main(String[] args) {
Student stu1 = new Student("張三",23);
stu1.show();

Student stu2 = new Student();
}
}

5.3 構造方法的注意事項

構造方法的建立 :

如果沒有定義構造方法,系統將給出一個預設的無引數構造方法

如果定義了構造方法,系統將不再提供預設的構造方法

構造方法的建立 :

如果沒有定義構造方法,系統將給出一個預設的無引數構造方法如果定義了構造方法,系統將不再提供預設的構造方法

推薦的使用方式 :

無論是否使用,都手動書寫無引數構造方法,和帶引數構造方法

5.4 標準類的程式碼編寫和使用

程式碼 :

package com.itheima.test3;

/*
  方法類:
JavaBean類: 封裝資料
*/
public class Student {
private String name;
private int age;

public Student() {
}

public Student(String name, int age) {
this.name = name;
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public void show(){
System.out.println(name + "..." + age);
}
}
package com.itheima.test3;
​/*
測試類:
*/
public class TestStudent {
public static void main(String[] args) {
// 1. 無引數構造方法建立物件, 通過setXxx方法給成員變數進行賦值
Student stu1 = new Student();
stu1.setName("張三");
stu1.setAge(23);
stu1.show();

// 2. 通過帶引數構造方法, 直接給屬性進行賦值
Student stu2 = new Student("李四",24);
stu2.show();
}
}

day07課後作業題

程式碼題

1.訓練案例1

1.1. 訓練描述:【Scanner,類和物件】

一、 實現從控制檯接收一個學員資訊,並存儲到一個物件中

二、 列印這個物件的所有屬性值。

1.2.要求描述

l 設計,並定義一個學員類:Student,要求有以下屬性:

學員編號(String)

姓名(String)

性別(String)

身高(double)

年齡(int)

使用封裝的原則,並提供無參和全參的構造方法。

1 定義MainApp類,幷包含main()方法。

2 程式啟動後,應分別提示使用者輸入學員編號、姓名等資訊。

例如控制檯顯示:

請輸入學員編號:

....

請輸入學員姓名:

....

.................

資料接收到程式中,並定義區域性變數儲存;

建立Student物件,通過構造方法將所有資料儲存到Student物件中;

在main方法中獲取並列印物件中的每個屬性值。

程式碼實現:

/*

類檔案:

*/

package com.heima.meiri.day7.mrb1;

public class Student {
private String Bianhao ;
private String Xingming ;
private String Xingbie ;
private double Shengao;
private int Age;

public Student() {
}

public Student(String bianhao, String xingming, String xingbie, double shengao, int age) {
Bianhao = bianhao;
Xingming = xingming;
Xingbie = xingbie;
Shengao = shengao;
Age = age;
}

public String getBianhao() {
return Bianhao;
}

public void setBianhao(String bianhao) {
Bianhao = bianhao;
}

public String getXingming() {
return Xingming;
}

public void setXingming(String xingming) {
Xingming = xingming;
}

public String getXingbie() {
return Xingbie;
}

public void setXingbie(String xingbie) {
Xingbie = xingbie;
}

public double getShengao() {
return Shengao;
}

public void setShengao(double shengao) {
Shengao = shengao;
}

public int getAge() {
return Age;
}

public void setAge(int age) {
Age = age;
}
public void show(){
System.out.println("學號:"+Bianhao);
System.out.println("姓名:"+Xingming);
System.out.println("性別:"+Xingbie);
System.out.println("身高:"+Shengao);
System.out.println("年齡:"+Age);
}
}

/*

測試檔案:

*/

package com.heima.meiri.day7.mrb1;

import java.util.Scanner;

public class TestStudent {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Student s=new Student();
System.out.println("請輸入學員編號:");
String i1 = sc.nextLine();
s.setBianhao(i1);
System.out.println("請輸入學員姓名:");
String i2 = sc.nextLine();
s.setXingming(i2);
System.out.println("請輸入學員性別:");
String i3 = sc.nextLine();
s.setXingbie(i3);
System.out.println("請輸入學員身高:");
double i4 = sc.nextDouble();
s.setShengao(i4);
System.out.println("請輸入學員年齡:");
int i5 = sc.nextInt();
s.setAge(i5);
s.show();
System.out.println("-------");
Student st=new Student(i1,i2,i3,i4,i5);
st.show();




}
}

執行效果:

2.訓練案例2

2.1.訓練描述

分析以下需求,並用程式碼實現

1.專案經理類Manager

屬性:

姓名name

工號id

工資salary

獎金bonus

行為:

工作work()

2.程式設計師類Coder

屬性:

姓名name

工號id

工資salary

行為:

工作work()

2.2:要求描述

要求:

1.按照以上要求定義Manager類和Coder類,屬性要私有,生成空參、有參構造,setter和getter方法

2.定義測試類,在main方法中建立該類的物件並給屬性賦值(演示兩種方法:setter方法和構造方法)

3.呼叫成員方法,列印格式如下:

工號為123基本工資為15000獎金為6000的專案經理一龍正在努力的做著管理工作,分配任務,檢查員工提交上來的程式碼.....

工號為135基本工資為10000的程式設計師方便正在努力的寫著程式碼......

/*

類檔案1:

*/

package com.heima.meiri.day7.mrb2;

public class Manager {
private String name;
private String id;
private int salary;
private int bonus;

public Manager() {
}

public Manager(String name, String id, int salary, int bonus) {
this.name = name;
this.id = id;
this.salary = salary;
this.bonus = bonus;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public int getSalary() {
return salary;
}

public void setSalary(int salary) {
this.salary = salary;
}

public int getBonus() {
return bonus;
}

public void setBonus(int bonus) {
this.bonus = bonus;
}

public void work(String name){
System.out.println("正在努力的做著管理工作,分配任務,檢查"+name+"的程式碼");


}
public void show(){
System.out.print("工號為"+id+"基本工資為"+salary+"獎金為"+bonus+"的專案經理"+name);
work("小張");
}
}

/*

類檔案2:

*/

package com.heima.meiri.day7.mrb2;

public class Coder {
private String name;
private String id;
private int salary;

public Coder() {
}

public Coder(String name, String id, int salary) {
this.name = name;
this.id = id;
this.salary = salary;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public int getSalary() {
return salary;
}

public void setSalary(int salary) {
this.salary = salary;
}

public void work(){
System.out.println("寫程式碼");
}
public void show(){
System.out.print("工號為"+id+"基本工資為"+salary+"程式設計師"+name+"正努力");
work();
}
}

/*

測試檔案:

*/

package com.heima.meiri.day7.mrb2;

public class Test {
public static void main(String[] args) {
Coder c=new Coder();
c.setId("0203001");
c.setName("lpj");
c.setSalary(10000);
c.show();
System.out.println("------");
Coder c1=new Coder("lpj","020",9999);
c1.show();
System.out.println("----------------------------");
Manager m=new Manager();
m.setBonus(3000);
m.setId("030");
m.setName("pj");
m.setSalary(15000);
m.show();
System.out.println("------");
Manager m1=new Manager("l","030",15000,4000);
m1.show();
}
}

執行效果:

day07課後擴充套件作業題

單選題

1:下列資訊中包含的內容不是類與物件關係的是(C )

A: 學生和小明同學 B: 電腦和聯想Y430電腦 C: 貓和狗C D: 手機和華為P20手機

2:下列描述正確的是(C )

A: 類與物件之間是包含關係,類包含物件。 B: 類與物件之間是等價關係,類和物件其實是同一個概念。 C: 物件是類的例項,類是物件的模板。 D: 通過一個類,只能建立一個物件。

3:下列描述正確的是(D )

A: 類是描述事物的屬性和行為的特徵而物件是一類事物的模板 B: 類是事物的具體體現而物件是一組相關屬性和行為的集合 C: 類和物件可以看成是一類事物的模板* D: 類是對一類事物的描述,是抽象的物件是一類事物的例項,是具體的

4:下列描述錯誤的是(D )

A: 在方法中的變數是區域性變數 B: 區域性變數隨著方法的呼叫而存在,隨著方法的呼叫結束而消失 C: 成員變數在類中、方法外 D: 區域性變數有預設的初始化值

5:下列程式碼的執行結果是(C )

public class Student {
private String name;
private int age;
public String getName() {
return name;
}

public void setName(String name) {
name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
}


public class Demo{
public static void main(String [] args){
Student s = new Student();
s.setName("小麗");
s.setAge(16);
System.out.println(s.getName() + "---" + s.getAge());
}
}

A: 語法錯誤,編譯報錯。 B: 小麗 --- 16 C: null --- 16 D: 小麗 --- 0

多選題

6:下列描述正確的是(ACD )

A: 面向物件思想是基於面向過程思想而來的,強調的是物件

B: 面向物件思想關注的是功能的每一個步驟

C: 面向物件思想完成一個功能,關注的是功能的結果,而不是每一個步驟,強調的是物件

D: 面向物件思想,關注的是物件,讓物件幫我們完成一個功能,強調的是物件

7:下列描述正確的是(ABD )

A: 類的{}中定義的是類的成員,可以有成員變數和成員方法。

B: 定義成員變數時,可以不給變數賦值。

C: 必須先定義成員變數,再定義成員方法。*

D: 成員變數的名字可以和區域性變數的名字相同。

8:下列說法正確的是(ABDC )

A: 當成員變數和區域性變數重名時,可以使用this來區分。

B: this可以呼叫本類的成員變數和成員方法。*

C: this表示本類物件的引用。

D: 在方法中訪問本類成員變數(非重名),可以省略this不寫。

9:關於下列程式碼描述正確的是( BC)

public class Demo{
int num1;
public void method(){
int num2;
System.out.println(num1);
System.out.println(num2);
}
}

public class Test{
public static void main(String[] args){
Demo d = new Demo();
d.method();
}
}

A: Demo中num1和num2都是成員變數

B: Demo中變數num1是成員變數,method方法中變數num2是區域性變數

C: 編譯報錯,因為num2是區域性變數,沒有賦值,不能直接使用

D: 呼叫Demo中的method的方法會在控制檯輸出:0 0

10:下列橫線處填寫Person類的構造方法的正確語法格式是(BC )

public class Person{
private String name;
__________________
}

A
public void Person(String name){
name = name;
}

B
public Person(){
}

C
public Person(String name){
this.name = name;
}

D
public Person(String name){
return name;
}

程式碼題

1.訓練案例1

1.1.訓練描述

分析以下需求,並用程式碼實現

1.貓類Cat

屬性:

毛的顏色color

品種breed

行為:

吃飯eat()

抓老鼠catchMouse()

2.狗類Dog

屬性:

毛的顏色color

品種breed

行為:

吃飯eat()

看家lookHome()

要求:

1.按照以上要求定義Cat類和Dog類,屬性要私有,生成空參、有參構造,setter和getter方法

2.定義測試類,在main方法中建立該類的物件並給屬性賦值(演示兩種方法:setter方法和構造方法)

3.呼叫成員方法,測試程式碼效果

1.2:案例效果

列印格式如下:

花色的波斯貓正在吃魚.....

藍色的英國短毛貓正在逮老鼠.....

黑色的德牧正在啃骨頭.....

黑色的藏獒正在看家.....

/*
類檔案1:

*/

package com.heima.meiri.day7.kz.kz1;

public class Cat {
private String color;
private String breed;

public Cat() {
}

public Cat(String color, String breed) {
this.color = color;
this.breed = breed;
}

public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}

public String getBreed() {
return breed;
}

public void setBreed(String breed) {
this.breed = breed;
}

public void Gn1(String eat){
System.out.println(color+"的"+breed+"正在"+eat);

}
public void Gn2(String catchMouse){
System.out.println(color+"的"+breed+"正在"+catchMouse);

}
}

/*

類檔案2:

*/

package com.heima.meiri.day7.kz.kz1;

public class dog {

private String color;
private String breed;

public dog() {
}

public dog(String color, String breed) {
this.color = color;
this.breed = breed;
}

public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}

public String getBreed() {
return breed;
}

public void setBreed(String breed) {
this.breed = breed;
}

public void Gn1(String eat){
System.out.println(color+"的"+breed+"正在"+eat);

}
public void Gn2(String lookHome){
System.out.println(color+"的"+breed+"正在"+lookHome);

}
}

/*

測試程式碼:

*/

package com.heima.meiri.day7.kz.kz1;

public class Test {
public static void main(String[] args) {
Cat c=new Cat();
c.setColor("紅色的");
c.setBreed("波斯貓");
c.Gn1("吃肉");
c.Gn2("抓老鼠");
System.out.println("...");
Cat c1=new Cat("紅色的","大花貓");
c1.Gn1("吃魚");
c1.Gn2("爬樹");
System.out.println("-----");
dog d=new dog();
c.setColor("黃色的");
c.setBreed("哈士奇");
c.Gn1("啃骨頭");
c.Gn2("看家");
System.out.println("...");
dog d1=new dog("黑色的","二哈");
d1.Gn1("吃屎");
d1.Gn2("拆家");
}
}
執行效果:

2.訓練案例2

2.1.訓練描述

請設計一個汽車類,模擬出司機開車載乘客兜風的場景;在測試類中分別使用空引數構造方法建立物件和帶引數構造方法建立物件並呼叫run方法,測試效果;

要求:

1:汽車類包含的成員變數

品牌,價格,顏色

2:汽車類包含的成員方法

getter/setter方法

run方法,有字串型別的司機和乘客兩個形參,無返回值

3:有帶引數構造方法和空引數構造方法

2.2:案例效果

/*

類檔案:

*/

package com.heima.meiri.day7.kz.ka2;

public class Car {
private String name;
private String color;
private String pinpai;
private int Yuan;

public Car() {
}

public Car(String name, String color, String pinpai, int yuan) {
this.name = name;
this.color = color;
this.pinpai = pinpai;
Yuan = yuan;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}

public String getPinpai() {
return pinpai;
}

public void setPinpai(String pinpai) {
this.pinpai = pinpai;
}

public int getYuan() {
return Yuan;
}

public void setYuan(int yuan) {
Yuan = yuan;
}
public void show(String name){
System.out.println(this.name+"開著價值"+Yuan+"萬的"+color+pinpai+"帶著"+name+"去兜風");

}
}

/*

測試檔案:

*/

package com.heima.meiri.day7.kz.ka2;

public class TestCar {
public static void main(String[] args) {
Car c=new Car();
c.setName("劉備");
c.setColor("紅色");
c.setPinpai("蘭博基尼");
c.setYuan(50);
c.show("孫尚香");
System.out.println("----");
Car c1=new Car("呂布","黃色","邁巴赫",66);
c1.show("貂蟬");
}
}
執行效果: