1、類
什么是類
? 類是具備某些共同特征的實體的集合,是對所具有相同特征實體的抽象。
Java中定義類的基本語法
訪問修飾符 class 類名{}
1
2
3
|
public class Student{ //定義了一個學生類 } |
成員變量
成員變量就是對象所擁有的屬性
基本語法
訪問修飾符 [可選修飾符] 數據類型 變量名稱;
1
2
3
4
5
6
7
|
public class Student{ //定義了一個學生類 public int age; String name; protected long tel; private double a; } |
方法
放法可以用來描述對象動作
基本語法
訪問修飾符 [可選修飾符] 數據類型 方法名稱(參數列表){方法體};
1
2
3
4
5
6
7
8
|
public class Student{ public void print(){ System.out.print( "方法" ) } public int sum( int a, int b){ return a + b; } } |
2、對象
什么是對象
對象就是類的實例
對象的創建
基本語法
類型 對象名稱 = new 類型();
1
2
3
4
5
|
public class StudentTest{ public static void main(String[] args){ Student stu = new Student(); } } |
3.方法的重載 什么是方法的重載
方法的重載就是在一個類當中存在多個同名的方法;
這些方法遵循以下規則
- 方法名相同
-
方法的參數列表不同
- ? 1)參數的個數不同
- ? 2)參數的類型不完全相同,包括數據類型以及數據類型的順序
- ? 3)與參數名稱無關
- 與方法的返回值類型、訪問修飾符無關
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public class Student{ /** *定義一個求和方法根據傳入參數的值進行求和,并返回結果 */ public int sum( int a, int b){ return a + b; } //參數的個數不同 public int sum( int a, int b, int c){ return a + b + c; } //參數列表的類型不同 public int sum( int a, short b){ return a + b; } //參數列表類型順序不同 public int sum( short a, int b){ return a + b; } } |
4、構造器 什么是構造方法
- 構造方法的結構和普通方法類似,但是和普通方法完全不同兩個代碼塊;
- 構造方法也是方法,意味著使用了構造方法,方法會執行,也能完成功能
- 構造方法就是一個代碼塊【就是一個結構 ,構造方法和 字段 方法一樣都是一個類中的成員之一
- 構造方法也該存在于類的結構體中
構造方法語法:
- 構造方法的名字和類名完全一致(包括大小寫完全一致)
- 沒有返回值類型(void也不行)
- 構造方法方法體不能返回任何的值(即不能在方法體中return 值)
-
其他的和普通方法類似 ,可以有修飾符(
public、protected、private、默認
),可以有形參列表 - 構造方法必須有方法體
-
構造方法不能有任何非訪問性質的修飾符修飾,例如
static、final、synchronized、abstract
等都不能修飾構造方法。
注意:new Student()
這個整體既是一個Student
對象,又是調用的Student
的無參數構造方法
構造方法特點
1.類中構造方法特點:
- ① 每一個類中都至少有一個構造方法;
- ② 如果沒有看到(顯示的),那么存在一個隱式的無參數的構造方法;
- ③ 如果一個類中有顯示的構造方法,那么隱式的無參的構造方法就不存在了;
構造方法的作用
在創建對象的同時給對象的成員變量賦值(初始化工作)
模板語法
1
2
3
4
5
|
public class 類名{ 成員變量 (字段); 構造方法(有參、無參); 方法 (具體的一個功能行為); } |
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class Student{ public String name; public int age; /** 無參構造 */ public Student(){} /** 有參構造 */ public Student(String name, int age){ } } |
5.this this指代當前對象,即哪個對象調用就指代哪個對象
this****用途:
- 解決局部變量和成員變量的二義性
- 在本類之間 ,構造方法之間的相互調用 this()調用無參數的構造方法,this(…)可以添加參數,表示調用有參數的構造方法
- this作為參數傳遞,this作為返回值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
public class Student{ public String name; public int age; /** 無參構造 */ public Student(){} /** 有參構造 */ public Student(String name, int age){ this (); //調用構造器,只能寫在第一句 this .name = name //調用屬性 } } |
6.封裝
封裝:指的是將類中不想被外界訪問的成員私有化。
封裝的作用
封裝是為了保護內部數據的安全:
1.不希望在外部類中隨意訪問對象的成員變量
2.達到權限要求的才能訪問
怎么封裝
1.如何控制程序中的訪問 ?
通過給類中的成員(字段,方法,構造方法)添加訪問權限修飾符來實現封裝(訪問控制)
2.什么是訪問權限:簡單的認為訪問權限就是不同級別的人能夠干不同級別的事,不同級別的人能看到的頁面是不同的
步驟
- 1. 私有化成員變量(用private修飾成員變量)
-
2. 為每一個成員變量提供合理的
- **getXxx()**方法 獲取成員變量的值,如果當前成員變量類型是boolean類型,將getXxx()改為 isXxx()
- **setXxx(…)**方法 設置成員變量的值
- 3. 提供一個無參構造,和全參的構造
- 4. 該類用public修飾
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class Student{ private String name; private int age; public String getName(){ return this .name; } public void setName(String name){ this .name = name; } public String getAge(){ return this .age; } public void setAge(String age){ this .age = age; } } |
總結
本篇文章就到這里了,希望可以給你提供幫助,也希望您能多多關注服務器之家的更多內容!
原文鏈接:https://blog.csdn.net/ww741258963123/article/details/117428941