新手了解java 類,對象以及封裝基礎(chǔ)知識
1、類
什么是類
類是具備某些共同特征的實(shí)體的集合,是對所具有相同特征實(shí)體的抽象。
Java中定義類的基本語法
訪問修飾符 class 類名{}
public class Student{ //定義了一個學(xué)生類 }
成員變量
成員變量就是對象所擁有的屬性
基本語法
訪問修飾符 [可選修飾符] 數(shù)據(jù)類型 變量名稱;
public class Student{ //定義了一個學(xué)生類 public int age; String name; protected long tel; private double a; }
方法
放法可以用來描述對象動作
基本語法
訪問修飾符 [可選修飾符] 數(shù)據(jù)類型 方法名稱(參數(shù)列表){方法體};
public class Student{ public void print(){ System.out.print("方法") } public int sum(int a, int b){ return a + b; } }
2、對象
什么是對象
對象就是類的實(shí)例
對象的創(chuàng)建
基本語法
類型 對象名稱 = new 類型();
public class StudentTest{ public static void main(String[] args){ Student stu = new Student(); } }
3.方法的重載 什么是方法的重載
方法的重載就是在一個類當(dāng)中存在多個同名的方法;
這些方法遵循以下規(guī)則
- 方法名相同
- 方法的參數(shù)列表不同
- 1)參數(shù)的個數(shù)不同
- 2)參數(shù)的類型不完全相同,包括數(shù)據(jù)類型以及數(shù)據(jù)類型的順序
- 3)與參數(shù)名稱無關(guān)
- 與方法的返回值類型、訪問修飾符無關(guān)
public class Student{ /** *定義一個求和方法根據(jù)傳入?yún)?shù)的值進(jìn)行求和,并返回結(jié)果 */ public int sum(int a,int b){ return a + b; } //參數(shù)的個數(shù)不同 public int sum(int a,int b,int c){ return a + b + c; } //參數(shù)列表的類型不同 public int sum(int a,short b){ return a + b; } //參數(shù)列表類型順序不同 public int sum(short a,int b){ return a + b; } }
4、構(gòu)造器 什么是構(gòu)造方法
- 構(gòu)造方法的結(jié)構(gòu)和普通方法類似,但是和普通方法完全不同兩個代碼塊;
- 構(gòu)造方法也是方法,意味著使用了構(gòu)造方法,方法會執(zhí)行,也能完成功能
- 構(gòu)造方法就是一個代碼塊【就是一個結(jié)構(gòu) ,構(gòu)造方法和 字段 方法一樣都是一個類中的成員之一
- 構(gòu)造方法也該存在于類的結(jié)構(gòu)體中
構(gòu)造方法語法:
- 構(gòu)造方法的名字和類名完全一致(包括大小寫完全一致)
- 沒有返回值類型(void也不行)
- 構(gòu)造方法方法體不能返回任何的值(即不能在方法體中return 值)
- 其他的和普通方法類似 ,可以有修飾符(
public、protected、private、默認(rèn)
),可以有形參列表 - 構(gòu)造方法必須有方法體
- 構(gòu)造方法不能有任何非訪問性質(zhì)的修飾符修飾,例如
static、final、synchronized、abstract
等都不能修飾構(gòu)造方法。
注意:new Student()
這個整體既是一個Student
對象,又是調(diào)用的Student
的無參數(shù)構(gòu)造方法
構(gòu)造方法特點(diǎn)
1.類中構(gòu)造方法特點(diǎn):
- ① 每一個類中都至少有一個構(gòu)造方法;
- ② 如果沒有看到(顯示的),那么存在一個隱式的無參數(shù)的構(gòu)造方法;
- ③ 如果一個類中有顯示的構(gòu)造方法,那么隱式的無參的構(gòu)造方法就不存在了;
構(gòu)造方法的作用
在創(chuàng)建對象的同時給對象的成員變量賦值(初始化工作)
模板語法
public class 類名{ 成員變量 (字段); 構(gòu)造方法(有參、無參); 方法 (具體的一個功能行為); }
public class Student{ public String name; public int age; /** 無參構(gòu)造 */ public Student(){} /** 有參構(gòu)造 */ public Student(String name,int age){ } }
5.this this指代當(dāng)前對象,即哪個對象調(diào)用就指代哪個對象
this****用途:
- 解決局部變量和成員變量的二義性
- 在本類之間 ,構(gòu)造方法之間的相互調(diào)用 this()調(diào)用無參數(shù)的構(gòu)造方法,this(…)可以添加參數(shù),表示調(diào)用有參數(shù)的構(gòu)造方法
- this作為參數(shù)傳遞,this作為返回值
public class Student{ public String name; public int age; /** 無參構(gòu)造 */ public Student(){} /** 有參構(gòu)造 */ public Student(String name,int age){ this();//調(diào)用構(gòu)造器,只能寫在第一句 this.name = name //調(diào)用屬性 } }
6.封裝
封裝:指的是將類中不想被外界訪問的成員私有化。
封裝的作用
封裝是為了保護(hù)內(nèi)部數(shù)據(jù)的安全:
1.不希望在外部類中隨意訪問對象的成員變量
2.達(dá)到權(quán)限要求的才能訪問
怎么封裝
1.如何控制程序中的訪問 ?
通過給類中的成員(字段,方法,構(gòu)造方法)添加訪問權(quán)限修飾符來實(shí)現(xiàn)封裝(訪問控制)
2.什么是訪問權(quán)限:簡單的認(rèn)為訪問權(quán)限就是不同級別的人能夠干不同級別的事,不同級別的人能看到的頁面是不同的
步驟
- 1. 私有化成員變量(用private修飾成員變量)
- 2. 為每一個成員變量提供合理的
- **getXxx()**方法 獲取成員變量的值,如果當(dāng)前成員變量類型是boolean類型,將getXxx()改為 isXxx()
- **setXxx(…)**方法 設(shè)置成員變量的值
- 3. 提供一個無參構(gòu)造,和全參的構(gòu)造
- 4. 該類用public修飾
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; } }
總結(jié)
本篇文章就到這里了,希望可以給你提供幫助,也希望您能多多關(guān)注腳本之家的更多內(nèi)容!
- Java面向?qū)ο笾橄箢?接口的那些事
- Java反射(Class類,Class對象獲取)
- 手把手帶你粗略了解Java--類和對象
- Java面向?qū)ο笾畠?nèi)部類案例講解
- java對象轉(zhuǎn)化成String類型的四種方法小結(jié)
- 一篇文章帶你深入了解Java對象與Java類
- Java實(shí)現(xiàn)普通類注入service對象
- 帶你入門Java的類與對象
- 淺談Java面向?qū)ο笾畠?nèi)部類
- java各種類型對象占用內(nèi)存情況分析
- 帶你快速了解Java中類和對象的關(guān)系
- java中類和對象的詳細(xì)介紹
- Java中的對象、類、抽象類、接口、繼承之間的聯(lián)系
- JavaWeb實(shí)體類轉(zhuǎn)為json對象的實(shí)現(xiàn)方法
- Java面向?qū)ο蠡A(chǔ),類,變量,方法
- Java 基礎(chǔ)語法讓你弄懂類和對象
相關(guān)文章
深入淺出講解Spring框架中依賴注入與控制反轉(zhuǎn)及應(yīng)用
依賴注入(Dependency?Injection)和控制反轉(zhuǎn)(Inversion?of?Control)是同一個概念。具體含義是:當(dāng)某個角色(可能是一個Java實(shí)例,調(diào)用者)需要另一個角色(另一個Java實(shí)例,被調(diào)用者)的協(xié)助時,在?傳統(tǒng)的程序設(shè)計過程中,通常由調(diào)用者來創(chuàng)建被調(diào)用者的實(shí)例2022-03-03Spring?Boot?整合持久層之Spring Data JPA
在介紹Spring Data JPA的時候,我們首先認(rèn)識下Hibernate。Hibernate是數(shù)據(jù)訪問解決技術(shù)的絕對霸主,使用O/R映射技術(shù)實(shí)現(xiàn)數(shù)據(jù)訪問,O/R映射即將領(lǐng)域模型類和數(shù)據(jù)庫的表進(jìn)行映射,通過程序操作對象而實(shí)現(xiàn)表數(shù)據(jù)操作的能力,讓數(shù)據(jù)訪問操作無須關(guān)注數(shù)據(jù)庫相關(guān)的技術(shù)2022-08-08Java設(shè)計模式之代理模式_動力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java設(shè)計模式之代理模式,本文詳細(xì)的介紹了什么事代理模式和相關(guān)的類和接口,有興趣的可以了解一下2017-08-08Java實(shí)現(xiàn)雙色球抽獎隨機(jī)算法示例
本篇文章主要介紹了Java實(shí)現(xiàn)雙色球抽獎隨機(jī)算法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06SpringBoot2.2.X用Freemarker出現(xiàn)404的解決
這篇文章主要介紹了SpringBoot2.2.X用Freemarker出現(xiàn)404的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02springboot+websocket實(shí)現(xiàn)并發(fā)搶紅包功能
本文主要介紹了springboot+websocket實(shí)現(xiàn)并發(fā)搶紅包功能,主要包含了4種步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12使用String轉(zhuǎn)換到Map結(jié)構(gòu)
這篇文章主要介紹了使用String轉(zhuǎn)換到Map結(jié)構(gòu),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11@Transactional注解:多個事務(wù)嵌套時,獨(dú)立事務(wù)處理方式
這篇文章主要介紹了@Transactional注解:多個事務(wù)嵌套時,獨(dú)立事務(wù)處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01