Java面向對象(OOP)
文章目錄
特點
- 封裝
- 繼承
- 多態
基本概念
類(Class)
-
同一種對象抽象概括
-
完整的類
- 靜態屬性:變量
- 動態行爲:方法
class Student{ // 類名:Student // 靜態屬性 —— Fields name: String; // 成員變量 height: double; weight: double; // 動態行爲 —— 方法 walk(): void; eat(): void; }
-
例:
// Student.java public Student{ public String name; // 成員變量 public double height; public double weight; public void walk(){ // 方法 System.out.println("在走路"); } public void eat(){ System.out.println("在喫飯"); } }
對象(Object)
- 具體的某個事物
類的定義
創建對象
-
聲明格式:引用類型變量用來給對象取名
類名 變量名;
// Main.java public class Main { public static void main(String[] args) { Student s1 = new Student(); // 在內存裏創建一個Student對象,創建一個s1引用變量,並將s1指向新建的Student對象 s1.height = 180; s1.weight = 100; System.out.println(s1.height); Student s2 = new Student(); s2.height = 170; s2.weight = 90; System.out.println(s2.wdight); s1.walk(); s2.eat(); } }
Java爲成員變量
賦默認值
- 整形
int
:0
- 浮點型
double
/float
:0.0
- 布爾型
Boolean
:false
- 引用類型 :
null
(空)
構造方法
構造方法
-
構造方法的作用是創建對象(初始化對象)
Student s1 = new Student(12, "Jack"); // 使用new操作符調用構造方法創建對象 Student s2 = new Student();
class Student{ int id; String name; public Student(int id, String name){ // 有參構造方法 this.id = id; this.name = name; } public Student(){ // 無參構造方法 } }
- 構造方法必須和所在類名稱相同。
- 構造方法沒有
返回值類型
,甚至沒有void
。 - 構造方法是在創建一個對象時由new操作符調用的。
-
默認無參構造方法(編譯器)
// 程序員沒有定義構造方法,編譯器默認給對象創建一個無參構造方法
-
構造方法重載
方法名相同,參數列表不同
Java常見類
Date類
// test_2.java
import java.util.Date;;
public class test_2 {
public static void main(String[] args) {
Date d = new Date();
System.out.println(d);
}
}
Random類
// test_3.java
import java.util.Random;
public class test_3 {
public static void main(String[] args) {
Random r = new Random();
System.out.println(r.nextInt(10));
}
}
static關鍵字
static作用
- 修飾
成員變量
、常量
、方法
以及代碼塊
靜態成員變量
class Student{
static String name = "Jack";
}
System.out.println(Student.name); // 可以通過類名訪問靜態成員變量
靜態方法
class Student{
static String name = "Jack";
static void foo(){
System.out.println("Hello World!!!");
}
}
Student.foo(); // 可以通過類名調用靜態方法
靜態方法
只能訪問靜態成員變量
,不能訪問非靜態成員變量
。