首頁 > 常見問題 > java對像是怎麼理解的

java對像是怎麼理解的

百草
發布: 2023-06-21 11:13:01
原創
2041 人瀏覽過

Java物件是由我們自己定義的類別來創建的,實際上就是類別的具體實現,沒有類別就沒有對象,一個類別可以創建很多對象。類別就是具備某些共同特徵的實體的集合,是一種抽象的資料類型,是對所具有相同特徵實體的抽象,是對一類「事物」的屬性與行為的抽象。對象就是一個真實世界中的實體,對象與實體是一一對應關係的,意思是現實世界的每一個實體都是一個對象,所以對象就是一個具體的概念。

java對像是怎麼理解的

本教學作業系統:Windows10系統、Java19.0.1版本、Dell G3電腦。

一、物件概念

1.物件是由我們自己定義的類別來建立出來的。

2.物件其實就是類別的具體實作。

例如:建造大樓時繪製的設計圖紙就是類,根據設計圖紙修建起來的真實的可以住人的

大樓就是對象。

類別--抽象【抽取像什麼一樣的東西】--範本【設計圖】

物件--實作--實例【樓房】

3.沒有類別就沒有物件

4.一個類別可以建立出多個物件

5.類別是物件的模板,物件是類別的真實表現

物件的作用

呼叫類別中的變數和方法

類別就是具備某些共同特徵的實體的集合,它是一種抽象的資料類型,它是對所具有相同特徵實體的抽象。在物件導向的程式設計語言中,類別是對一類「事物」的屬性與行為的抽象化。

對象就是一個真實世界中的實體,對象與實體是一一對應關係的,意思是現實世界的每一個實體都是一個對象,所以對象就是一個具體的概念。

二、如何建立物件【new】

1.目前類別中--new 建構方法---this

2.其他類別中--new 建構方法

格式: new 建構方法( [參數值] );

例如:在本類別中

packagecom.wangxing.test1;

publicclassduiXiang{
//创建公共实例成员变量/静态变量
publicStringname="zhangsan";
publicstaticintint1=1001;
publicduiXiang(){
newduiXiang();
//当对象在类中声明,要使用变量或方法时
System.out.println(newduiXiang().int1);
System.out.println(this.int1);
}
}
登入後複製

在其他類別中

packagecom.wangxing.test1;

publicclasstest{
publicstaticvoidmain(Stringargs[]){
newduiXiang();
}
}
登入後複製

三、物件存取變數

1.局部變數在其他類別中年不能存取。

2.實例變數只能物件訪問

3.靜態變數類別名稱訪問,可以物件訪問

4.實例變數在同一個類別的多個物件之間不能資料共享

靜態變數在同一個類別的多個物件之間能資料共享

例如:

packagecom.wangxing.test1;

publicclassfangWenBianLiang{
//创建实例成员和静态成员
publicStringname="lisi";
publicstaticintint1=1001;
publicfangWenBianLiang(){}
//创建一个无返回值和无参实例方法
publicvoidmethod1(){
//实例方法只能对象访问或者this指向这个类的对象
System.out.println("对象访问实例变量="+newfangWenBianLiang().name);
System.out.println("对象访问实例变量="+this.name);
//System.out.println("实例变量只能对象访问实例变量="+object.name);
//静态变量类名访问,可以对象访问
System.out.println("对象访问静态变量="+this.int1);
System.out.println("对象访问静态变量="+newfangWenBianLiang().int1);
System.out.println("对象访问静态变量="+fangWenBianLiang.int1);
}
}
登入後複製

test類別測試物件存取

packagecom.wangxing.test1;

publicclasstest{
publicstaticvoidmain(Stringargs[]){
//创建fangWenBianLiang类的对象
fangWenBianLiangobj1=newfangWenBianLiang();
fangWenBianLiangobj2=newfangWenBianLiang();
//测试实例变量和静态变量在多个对象之间数据是否共享
//实例变量
System.out.println("实例变量obj1.name="+obj1.name);
obj1.name="zhangsan";
//多个对象中不能共享数据
System.out.println("实例变量obj1.name="+obj1.name);
System.out.println("实例变量obj2.name="+obj2.name);
//静态变量
System.out.println("静态变量obj1.int1="+obj1.int1);
obj1.int1=1002;
//多个对象中能共享数据
System.out.println("静态变量obj1.int1="+obj1.int1);
System.out.println("静态变量obj2.int1="+obj2.int1);
}
}
登入後複製

java對像是怎麼理解的

四、物件存取方法

1.建構方法的存取--new

2.實例方法只能物件存取

#3.靜態方法類別名稱訪問,可以物件存取

4.有參數方法,需要傳遞參數【個數,類型】【要什麼,給什麼】

5.有返回值,方法體中的最後一句是return,返回的資料值要與方法的回傳值類型匹配,

呼叫有回傳值的方法需要定義變數來接收方法的回傳值【給什麼,收什麼】

例如:

packagecom.wangxing.test1;

publicclassfangWenFangfa{
publicfangWenFangfa(){}
//创建无返回值无参的实例方法
publicvoidmethod1(){
System.out.println("无返回值无参的实例方法");
//this.method1();
}
publicStringmethod3(intid,Stringname){
System.out.println("有返回值返回值有参的实例方法");
Stringinfo="id=="+id+"---"+"name=="+name;
returninfo;
}
//创建无返回值无参的静态方法
publicstaticvoidmethod2(){
System.out.println("无返回值无参的静态方法");
}
}
登入後複製

測試類別

packagecom.wangxing.test1;

publicclasstestFangFa{
publicstaticvoidmain(Stringargs[]){
//创建fangWenFangfa类的对象
fangWenFangfafwff=newfangWenFangfa();
//实例方法只能对象访问,在同一类时可以使用this指向类对象访问实例方法
fwff.method1();
//fangWenFangfa.method1();
//静态变量,在同一类时可以使用this指向类对象访问静态方法
fwff.method2();
fangWenFangfa.method2();
//有参数方法,需要传递参数【个数,类型】【要什么,给什么】
//有返回值,方法体中的最后一句是return,返回的数据值要与方法的返回值类型匹配,
//调用有返回值的方法需要定义变量来接收方法的返回值【给什么,收什么】
Stringinfo1=fwff.method3(1001,"zhangsan");
System.out.println("对象访问有返回值参数的实例方法结果:"+info1);
}
}
登入後複製

java對像是怎麼理解的

以上是java對像是怎麼理解的的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板