Java 面向?qū)ο蟮奶卣鹘馕雠c應(yīng)用
## 類和對象
* 面向?qū)ο笈c面向過程
面向過程:是指類似在C語言學(xué)習(xí)中,所寫的代碼都在主程序(main())中運(yùn)行,非常的繁瑣。
面向?qū)ο螅菏紫葎?chuàng)建一個(gè)類,類中包括對一個(gè)事物描述的性質(zhì)(成員變量)和方法(成員方法)。
面向?qū)ο笫侵笇σ粋€(gè)事物的描述。
eg:對一個(gè)手機(jī)進(jìn)行描述,創(chuàng)建一個(gè)名為phone的類。
passage ...;
public class phone
{
//成員變量
String name;
double price;
String color;
//成員方法
call(String name )
game(String playname)
}
## 兩種常見的方法
* 方法重載
指的是當(dāng)聲明了成員變量之后,隊(duì)成員變量進(jìn)行賦值的兩種方法:
初始化:
double x;
double y;
MethodOveringLoading()
{
x=1.2;
y=0.0;
}
//方法重載
//可以通過自己想要的對成員變量進(jìn)行定義
MethodOverLoading(double a,double b)
{
x=a;
y=b;
}
綜上可以看出為什么會出現(xiàn)方法重載這個(gè)概念?
就是因?yàn)閷τ谝粋€(gè)類中的成員變量一般都是沒有初始化的,當(dāng)程序員想要根據(jù)實(shí)際問題進(jìn)行設(shè)定時(shí),就出現(xiàn)了方法重載這個(gè)概念。
* 參數(shù)個(gè)數(shù)可變方法
現(xiàn)在我們再來看一個(gè)成員方法的例子:
//求和
public int sum(int a,int b)
{
return a+b;
}
問題是當(dāng)我們輸入兩個(gè)數(shù)值時(shí),只進(jìn)行的2個(gè)數(shù)的求和,這里我們就可以用到參數(shù)個(gè)數(shù)可變的方法;
public int sum(int ...arg)
{
int sum=0;
for(int a:arg)
{
sum+=a;
}
return sum;
}
public static void main(String[] args)
{
System.out,print(sum(1,2,3))//輸出結(jié)果為6;
}
這里需要注意的是一般情況下所輸入的參數(shù)都為相同類型的,但也可以輸入不同類型的參數(shù)。
public int sum(double a,int ...arg)//true public int sum(double a,int ...arg)//false
* 遞歸方法
函數(shù)調(diào)用函數(shù)的方法。~暫時(shí)還想不出啥好的例子,以后再補(bǔ)充。
## 在程序運(yùn)行過程中的內(nèi)存分配
* 類的引用
* 相同包內(nèi)class的引用
這種情況下不需要進(jìn)行對類聲明;
* 不同包內(nèi)class的引用
聲明所引用類的位置:import packagename.classname;//包名.類名
* 內(nèi)存分配

在程序運(yùn)行的過程中內(nèi)存分成三個(gè)區(qū)域,
棧(Stack)、堆(Heap)、方法區(qū)(Method Area)
開始時(shí)所引用的類都放在一個(gè)叫做方法區(qū)的地方,當(dāng)然不是包中所有的類在程序運(yùn)行時(shí)都會被調(diào)用,這就需要一個(gè)地方區(qū)分那些被用到而那些類沒有被用到,這個(gè)地方就是堆,但堆并不是將類中所有的信息都拿過來,而是只拿了類中成員變量和成員方法在方法區(qū)中位置。當(dāng)在main函數(shù)中輸入Phone one=new Phone()時(shí),這里的one是新new出來的一個(gè)對象,one接收到的是一個(gè)地址(Phone這個(gè)類所在堆中的地址信息),在后面的調(diào)用中只需要輸入one.***就可以對類中成員方法和成員變量進(jìn)行調(diào)用。
one_dyas
到此這篇關(guān)于Java 面向?qū)ο蟮奶卣鹘馕雠c應(yīng)用的文章就介紹到這了,更多相關(guān)Java 面向?qū)ο髢?nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于springboot的接口返回值統(tǒng)一標(biāo)準(zhǔn)格式
這篇文章主要介紹了關(guān)于springboot的接口返回值統(tǒng)一標(biāo)準(zhǔn)格式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
關(guān)于在Java中如何使用yaml的實(shí)例
這篇文章主要介紹了關(guān)于在Java中如何使用yaml的實(shí)例,YAML是一種輕量級的數(shù)據(jù)序列化格式。它以易讀、易寫的文本格式表示數(shù)據(jù),支持列表、字典等各種數(shù)據(jù)結(jié)構(gòu),被廣泛應(yīng)用于配置文件、數(shù)據(jù)傳輸協(xié)議等領(lǐng)域,需要的朋友可以參考下2023-08-08
Java強(qiáng)制類型轉(zhuǎn)換的所有規(guī)則及說明
這篇文章主要介紹了Java強(qiáng)制類型轉(zhuǎn)換的所有規(guī)則及說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
使用Java把文本內(nèi)容轉(zhuǎn)換成網(wǎng)頁的實(shí)現(xiàn)方法分享
這篇文章主要介紹了使用Java把文本內(nèi)容轉(zhuǎn)換成網(wǎng)頁的實(shí)現(xiàn)方法分享,利用到了Java中的文件io包,需要的朋友可以參考下2015-11-11
java int轉(zhuǎn)byte和long轉(zhuǎn)byte的方法
下面小編就為大家?guī)硪黄猨ava int轉(zhuǎn)byte和long轉(zhuǎn)byte的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10
Java Gradle項(xiàng)目中的資源正確獲取方式
這篇文章主要介紹了Java Gradle項(xiàng)目中的資源正確獲取方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
FeignClientFactoryBean創(chuàng)建動態(tài)代理詳細(xì)解讀
這篇文章主要介紹了FeignClientFactoryBean創(chuàng)建動態(tài)代理詳細(xì)解讀,當(dāng)直接進(jìn)去注冊的方法中,一步步放下走,都是直接放bean的定義信息中放入值,然后轉(zhuǎn)成BeanDefinitionHolder,最后在注冊到IOC容器中,需要的朋友可以參考下2023-11-11

