1. 程式人生 > 其它 >Java基礎-類與物件

Java基礎-類與物件

技術標籤:Java基礎java

類與物件

Java這門語言,是一門面向物件的語言;

C++ C# Java Java是純面嚮物件語言;

程式設計思想:

  • 面向過程的設計思想 ,C
  • 面向物件的設計思想;涉及到那些物件 物件和物件之間有沒有關聯 合適的方法在合適的類裡面;其實是對現實問題的抽象 跟容易讓人理解

面向物件三大特徵:

​ 封裝 繼承 多型

1.1.類與物件

  • 類是一個抽象的概念,是一組物件的藍圖,是把一組物件相同的特徵(屬性)和功能(方法)抽取出來
  • 類的組成有 屬性 和方法
  • 物件是類的一個具體的例項(看得見摸得著的具體的例項)

1.1.1.如何定義一個類

1.屬性(或者稱為 例項變數/成員變數)

  • 成員變數的型別可以是任何資料型別
  • 成員變數有預設值,是其資料型別的0值,引用型別預設值是null
  • 成員變數的作用域是整個類體
  • 每個物件的成員變數有不同的儲存空間

2,方法是類具有的功能;該類的所有物件共享該方法

3,類的定義

public class Student {
    /**
     * 屬性
     * 方法 (功能)
     */
    String name; //預設值是 null
    boolean age; // false
    char gender;
    int[] aa; // 預設值是 null

    public void study() {
        System.
out.println(name); System.out.println("=="); } public void eat() { System.out.println("會吃飯"); } }

1.1.2.物件的建立和使用

  • 使用關鍵字new
		// 使用關鍵字 new
        Student stu1 = new Student();
  • 訪問物件屬性/方法
public static void main(String[] args) {
        // 使用關鍵字 new
        Student stu1 =
new Student(); // 如何訪問物件方法/屬性 stu1.study(); System.out.println(stu1.name); }

1.1.3.成員變數和區域性變數的區別

  • 宣告的位置不同,區域性變數在方法體種宣告,成員變數在類體種宣告
  • 作用域不同,區域性變數的作用域是方法體,成員變數的作用域是整個類體
  • 區域性變數使用之前一定要賦值才能使用,成員變數有預設值(JVM給的)資料型別的0值
  • 當成員變數和區域性變數重名 的時候,優先使用區域性變數

1.1.4.構造方法(構造器)

  • 用來完成物件的初始化動作,給成員變數賦了初始值
  • 構造方法的方法名和類名一樣,沒有返回值
  • 如果沒有新增構造方法,會有一個預設的無參構造方法
  • 如果自己寫了構造方法,不會再有預設的構造方法了
public class Student {
    /**
     * 屬性
     * 方法 (功能)
     */
    String name; //預設值是 null
    int age; // false
    char gender;

    public Student(String a, int b, char c) {
        name = a;
        age = b;
        gender = c;
    }
    
    public void getMessage() {
        System.out.println("學生姓名:" + name + "學生年齡: " + age + " 學生性別f:" + gender);
    }

    public void study() {
        String name = "娜美";
        System.out.println(name + "正在學習");
    }

    public void eat() {
        System.out.println("會吃飯");
    }
}

使用

  		Student stu1 = new Student("路飛",19,'m');
        stu1.getMessage();
        stu1.study();

1.1.5.構造方法的過載

  • 有多個構造方法
    public Student() {
    }

    public Student(String a, int b, char c, Computer com) {
        name = a;
        age = b;
        gender = c;
        computer = com;
    }

案例,描述每個學生擁有一臺電腦

public class Student {
    String name; //預設值是 null
    int age; // false
    char gender;
    Computer computer; //null
    public Student() {
    }
    public Student(String a, int b, char c, Computer com) {
        name = a;
        age = b;
        gender = c;
        computer = com;
    }
    public void study() {
        System.out.println(name + "正在使用" + computer.brand + " 學習");
    }
    
}