Java基礎-類與物件
阿新 • • 發佈:2020-12-23
類與物件
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 + " 學習");
}
}