詳解Java中類與對象的關(guān)系
前言
已經(jīng)開始類與對象的講解了,正式步入了Java的道路了,在講解前,我們都知道Java是面向?qū)ο蟮木幊陶Z言,那么什么是對象呢?還有類是什么呢?
一、類與對象的介紹
類的關(guān)鍵字是class,在Java編程里,類的作用相當(dāng)于機(jī)械師手中的構(gòu)造圖,如果沒有構(gòu)造圖,就無法打造武器,同樣如果沒有類,就無法實(shí)例化。
對象就是打造人,通過對象將類實(shí)例化。
個人結(jié)論:工匠 使用錘子根據(jù)說明書打造出武器, 對象 編譯器 類 實(shí)例化。
- 類可以有很多對象,而對象卻只有一個類。
- 類有成員變量和成員方法。
- 類不占空間,只有實(shí)例化時,才開辟相應(yīng)空間。
二、類的實(shí)例化
類相當(dāng)于構(gòu)造圖,然而構(gòu)造圖上肯定寫了需要的零件和打造的方法,所以類就有著成員變量和成員方法。
然后對象才知道如何打造(開辟空間)。
類和對象的定義和實(shí)例化的格式:
// 創(chuàng)建類 類名 class <class_name>{ field;//成員屬性 method;//成員方法 } // 實(shí)例化對象 <class_name> <對象名> = new <class_name>();
class為定義類的關(guān)鍵字,ClassName為類的名字,{}中為類的主體。 類中的元素稱為:成員屬性。類中的函數(shù)稱為:成員方法
格式已經(jīng)出來了,現(xiàn)在我們敲一個代碼出來看看:
class Person { int age;//成員屬性 實(shí)例變量 String name; String sex; //成員方法 public void eat() { System.out.println("吃飯!"); } public void sleep() { System.out.println("睡覺!"); } } public class Main{ public static void main(String[] args) { Person person = new Person(); //通過new實(shí)例化對象 //產(chǎn)生對象 實(shí)例化對象 Person person2 = new Person(); Person person3 = new Person(); }
這就是創(chuàng)建類和對象的具體方法了。
三.類與對象的使用方法
3.1對象的初始化
對象的初始化有兩種方式。
第一種:使用圓點(diǎn)成員運(yùn)算符( .) 可以直接對指定對象實(shí)例化的成員變量進(jìn)行賦值。
對象.屬性:表示調(diào)用類之中的成員變量;對象.方法():表示調(diào)用類之中的成員方法。
第二種:使用構(gòu)造函數(shù),使用函數(shù)可以對成員變量進(jìn)行初始化。
類名(參數(shù)){ 結(jié)構(gòu)體 };
代碼示例圖:
class Person { int age;//成員屬性 實(shí)例變量 String name; String sex; //構(gòu)造函數(shù) Person(){ } Person(String names){ name=names; } //成員方法 public void eat() { System.out.println("吃飯!"); } public void sleep() { System.out.println("睡覺!"); } } public class Main{ public static void main(String[] args) { Person person = new Person(); //通過new實(shí)例化對象 //初始化person成員變量name,調(diào)用成員方法eat() person.name="李四"; //操作屬性內(nèi)容 person.eat(): //調(diào)用成員方法 //構(gòu)造方法初始化 Person person2 = new Person("張三"); Person person3 = new Person(); }
3.2內(nèi)存顯示圖
類的構(gòu)造圖,但一旦實(shí)例化,就開辟出了內(nèi)存,存放著對應(yīng)的變量和方法。
代碼內(nèi)存顯示圖:
在main函數(shù)里創(chuàng)建了三個對象,person、person1、person2。每個對象都進(jìn)行了實(shí)例化,在堆空間創(chuàng)建了內(nèi)存。如上圖,相當(dāng)于每一個對象都有屬于它的空間。
四.this的使用方法
this是什么?this是關(guān)鍵字,代表著當(dāng)前對象的引用。當(dāng)參數(shù)名和成員變量相同時,使用this來引用,則代表的是成員變量。
結(jié)論:從圖中我們可以分析到 this不但可以引用成員變量,也可以使用構(gòu)造函數(shù)。所以this便是當(dāng)前對象。
注:只允許在當(dāng)前類使用,構(gòu)造方法中使用,需要放在第一行。
總結(jié)
- 類相當(dāng)于藍(lán)圖,由對象根據(jù)類來將其實(shí)例化。
- public修飾的類必須與文件名相同
- this相當(dāng)于對象名,作用和對象名一樣,可以引用成員變量、構(gòu)造函數(shù)、成員函數(shù)。但引用構(gòu)造函數(shù)需要放在第一行。
- 類不占空間,但是對象實(shí)例化之后需要開辟空間。
在類與對象之后,還會有封裝、繼承、抽象、多態(tài)和接口相關(guān)的知識,在類與對象的基礎(chǔ)上不斷的延長。
到此這篇關(guān)于詳解Java中類與對象的關(guān)系的文章就介紹到這了,更多相關(guān)Java類與對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Java利用ExecutorService實(shí)現(xiàn)同步執(zhí)行大量線程
這篇文章主要介紹了Java利用ExecutorService實(shí)現(xiàn)同步執(zhí)行大量線程,ExecutorService可以維護(hù)我們的大量線程在操作臨界資源時的穩(wěn)定性。2017-03-03一文詳解Java中的可變對象(Mutable)與不可變對象(Immutable)
如何在 Java 中創(chuàng)建不可變對象?我以前以為所有對象都是不可變的,因?yàn)槿绻愀淖円粋€ String 實(shí)例的內(nèi)容,它總是會創(chuàng)建一個新的 String 對象并指向該對象,在本文中,我不僅將分享在 Java 中Immutable的步驟,還將討論可變對象與不可變對象及其優(yōu)缺點(diǎn)2023-11-11java實(shí)現(xiàn)輸出文件夾下某個格式的所有文件實(shí)例代碼
這篇文章主要介紹了java實(shí)現(xiàn)輸出文件夾下某個格式的所有文件,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06一篇文章帶你入門Java數(shù)據(jù)結(jié)構(gòu)
這篇文章主要介紹了Java常見數(shù)據(jù)結(jié)構(gòu)面試題,帶有答案及解釋,希望對廣大的程序愛好者有所幫助,同時祝大家有一個好成績,需要的朋友可以參考下,希望可以幫助到你2021-08-08SpringBoot+JWT實(shí)現(xiàn)注冊、登錄、狀態(tài)續(xù)簽流程分析
這篇文章主要介紹了SpringBoot+JWT實(shí)現(xiàn)注冊、登錄、狀態(tài)續(xù)簽【登錄保持】,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06java swing實(shí)現(xiàn)的掃雷游戲及改進(jìn)版完整示例
這篇文章主要介紹了java swing實(shí)現(xiàn)的掃雷游戲及改進(jìn)版,結(jié)合完整實(shí)例形式對比分析了java使用swing框架實(shí)現(xiàn)掃雷游戲功能與相關(guān)操作技巧,需要的朋友可以參考下2017-12-12