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