日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中的对象、private关键字、this关键字、构造方法

發布時間:2025/3/15 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中的对象、private关键字、this关键字、构造方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向對象

概述:Java一種面向對象的程序設計語言,面向對象思想是一種程序設計思想,在面向對象思想的指引下,使用Java語言去設計、開發計算機程序。

這里的對象泛指現實中一切事物,每種事物都具備自己的屬性和行為。

面向對象思想:就是在計算機程序設計過程中,參照現實中事物,將事物的屬性特征、行為特征抽象出來,描述成計算機事件的設計思想。 它區別于面向過程思想,強調的是通過調用對象的行為來實現功能,而不是自己一步一步的去操作實現。

面向對象思想是一種更符合我們思考習慣的思想,它可以將復雜的事情簡單化,并將我們從執行者變成了指揮者。面向對象的語言中,包含了三大基本特征,即封裝、繼承和多態。

面向過程思想:強調完成某件事的具體步驟。

/* 面向過程:當實現一個功能時,每一步都要親力親為,詳細到每一個細節。 面向對象:當實現一個功能時,不關心具體的步驟,而是找一個可以實現此功能的事物幫助我們完成,這個事物即面向對象。 */ import java.util.Arrays; public class Javaobject{public static void main(String[] args){int[] arr1 = new int[]{1,2,3,4,5};// 1.使用面向對象過程打印數組arr1:System.out.print("[");//println中ln表示換行,可以去掉ln表示不換行打印for(int i = 0; i < arr1.length; i ++){if(i < arr1.length - 1){System.out.print(arr1[i] + " ,");}else{System.out.print(arr1[i]);}};System.out.println("]");//[1,2,3,4,5]// 2.使用java中內置Arrays.toString()方法實現打印arr1:// 找一個JDK給我們提供的Arrays類,Arrays類中有一個toString方法,它可以幫助我們完成這個功能,體現了面向對象的思想。System.out.println(Arrays.toString(arr1));//[1, 2, 3, 4, 5],需要注意:使用此方法時,應該導入java中util中的Arrays:import java.util.Arrays;} }

:一組相關屬性和行為的集合。可以看成是一類事物的模板,使用事物的屬性特征和行為特征來描述該類事物。

屬性:某事物的狀態信息。

行為:某事物可以做某些事的能力(方法)。

對象:一類事物的具體體現。對象是類的一個實例,具備該類事物的屬性和行為。

類與對象的關系:類是對一類事物的描述,是抽象的,而對象是一類事物的具體實例,是具體的;對象是一個類的具體體現,類是一個對象的模板。

定義類:定義類指的是定義類的成員,其中包括成員變量和成員方法;成員變量是定義在類當中,方法外的變量;成員方法是定義時去掉static(有static為普通方法的定義)。

// 1.定義一個類(學生):學生類有成員變量(屬性)和成員方法(行為)等,如: public class Students{//public static是固定寫法沒錯,但是在定義類時,這里無需static為成員方法,普通方法才使用static// 成員變量:直接定義在類中(方法外)的變量為成員變量String name;//名字int age;//年齡byte sex;//性別double weight;//體重double height;//體重// 成員方法:定義方法時不寫static為成員方法,寫static為普通方法public void sleep(){System.out.println("睡覺");};public void eat(){System.out.println("吃飯");};public void study(){System.out.println("學習");};public void play(String sth){System.out.println("玩" + sth);}; }

創建對象并使用:
創建對象并使用分三步:

1.導包:指明要使用的類在什么位置,其格式為:import 包名稱.類名稱;如果類是在當前包中,那么可以不用導包,直接new一個對象。

2.new一個對象:使用關鍵字new創建某類的實例,其格式為:類名稱 對象名(自定義)= new 類名稱();

3.使用類成員:使用成員變量其格式為:對象名.成員變量 = 值;使用成員方法其格式為:對象名.成員方法(參數);

// import 包名.Students;// 1.導入包中的某類,頂部導入,這里為同一個包中,可以省略 public class Xiaoming{public static void main(String[] args){// 2.new一個對象(類的實例):Students xiaoming = new Students();// 3. 使用成員變量:// 給成員變量賦值:xiaoming.name = "小明";xiaoming.age = 18;xiaoming.sex = 1;xiaoming.height = 170;xiaoming.weight = 62.5;// 打印成員變量的值System.out.println(xiaoming.name);//小明System.out.println(xiaoming.weight);//62.5// 成員方法傳參數并調用:xiaoming.play("籃球");//玩籃球xiaoming.eat();//吃飯} }

一個對象內存圖:

兩個對象同一類內存圖(手機實例做參考):

兩個對象指向同一地址內存圖(手機實例做參考):

對象作為參數傳入方法

// 1.方法中可以傳入任何數據類型的數據作為參數,這里將Students類new出來的對象作為參數為例: public class StudentsParam{public static void main(String[] args){// 1-1:new兩個對象:xiaohong和jack:Students xiaohong = new Students();xiaohong.name = "小紅";xiaohong.age = 18;xiaohong.sex = 0;xiaohong.weight = 50.0;xiaohong.height = 170.0;Students jack = new Students();jack.name = "杰克";jack.age = 19;jack.sex = 1;jack.weight = 60.5;jack.height = 170.0;// 1-3:分別傳入兩個對象作為info方法的參數調用info方法:info(xiaohong);//當前學生姓名為:小紅,齡為:18歲,性別:女,體重為:50.0kg,身高為:170.0cm.info(jack);//當前學生姓名為:杰克,齡為:19歲,性別:男,體重為:60.5kg,身高為:170.0cm.}// 1-2:定義一個普通方法info,要求傳入數據類型為Students類的對象做為參數調用(實際傳入的是地址值):public static void info(Students someone){//Students類似int等,表示后面somenoe的數據類型,這里為Students類,傳入一個對象類型。System.out.print("當前學生姓名為:"+ someone.name + ",");System.out.print("齡為:"+ someone.age + "歲,");System.out.print("性別:"+ (someone.sex == 0 ? "女" : "男") + ",");System.out.print("體重為:"+ someone.weight + "kg,");System.out.println("身高為:"+ someone.height + "cm.");} }

對象作為方法返回值

// 1.將對象作為方法的返回值進行使用: public class ReturnStudentsobj{public static void main(String[] args){// 1-2:調用creatStudentInfo方法來創建對象,并將返回值賦值給變量:Students stu1 = creatStudentInfo("kuhai",23,(byte) 1,60,167);Students stu2 = creatStudentInfo("ConstancyMan",23,(byte) 1,60,167);// 1-3:測試通過creatStudentInfo方法返回值創建的對象:System.out.println(stu1.name);//kuhaiSystem.out.println(stu2.name);//ConstancyMan};// 1-1:定義個方法creatStudentInfo來創建一個對象并返回這個對象:public static Students creatStudentInfo(String names,int ages,byte sexs,double weights,double heights){Students stu = new Students();stu.name = names;stu.age = ages;stu.sex = sexs;stu.weight = weights;stu.height = heights;return stu;}; };

成員變量和局部變量的區別:

1.定義位置不同:局部變量定義在方法內部;成員變量定義在類中。

2.作用范圍(作用域)不同:局部變量只有在方法當中有效;而成員變量在整個類可以使用,包括方法中。

3.默認值不同:局部變量沒有默認值;成員變量有默認值。

4.內存位置不同:局部變量位于棧內存;成員變量位于堆內存。

5.生命周期不同:局部變量隨著方法進棧產生,方法出棧消失;成員變量隨著對象創建產生,對象被垃圾回收成員變量消失。

java中封裝:

1.方法即是一種封裝。

2.關鍵字private(私有化)也是一種封裝,其是對成員變量的修飾,避免不合理的值被設置給成員變量。被private修飾的成員變量,超出本類后將不能直接訪問成員變量,需要通過get-和set-方法間接設置和訪問被private修飾的成員變量,如下:

private關鍵字:

創建類:

// 創建一個PrivatePerson類,并使用private關鍵字修飾某些成員變量: public class PrivatePerson{String names;// 1.使用關鍵字private修飾某些成員變量,使其在被賦值時可以合法(例如:年齡不能為負值等)private int age;// int age;// 2.在方法info中使用成員變量,包括被private修飾的成員變量(在本類中是可以直接通過點.的方式訪問的,一旦超出本類就不能直接訪問)public void info(){System.out.println("該用戶的姓名為:"+names+",年齡為:"+age+"歲。");}// 3.此時編譯此類不會報錯,如果不在本類中直接使用age成員變量就會有報錯,此時只能間接的訪問和設置被private修飾的成員變量:// 3-1:設置被private修飾的成員變量其方法是:定義一個方法以參數的形式修改成員變量,在超出類的作用域調用該方法即可,特別強調:方法名應命名為:set+首字母大寫的成員變量名,如:setAgepublic void setAge(int ages){// age = ages;// 4:此時我們可以對傳入的參數進行篩選,使其合法,如:if(ages < 120 && ages > 0){age = ages;}else{age = 18;}}// 3-2:訪問被private修飾的成員變量其方法是:定義一個方法以返回值的形式返回成員變量,在超出本類的作用域調用該方法即可,特別強調:方法名應命名為:get+首字母大寫的成員變量名,如:getAge,但是對于布爾類型要命名為is-格式,如:isManpublic int getAge(){return age;} };

實例化對象:

public class NewPersonPrivateage{public static void main(String[] args){// 1.new一個PrivatePerson類的實例:person1,并使用被private關鍵字修飾的成員變量age:PrivatePerson person1 = new PrivatePerson();person1.names = "luck";// person1.age = 18;//1-1:通過private關鍵字修飾的成員變量在超出它自己類后直接使用會報錯:錯誤: age 在 PrivatePerson 中是 private 訪問控制// 1-2:通過調用實例化對象person1下的setAge和getAge方法設置和訪問被private修飾的成員變量:// 設置成員變量age:person1.setAge(-10);// 訪問成員變量age:int param = person1.getAge();System.out.println("person1的名字為:"+person1.names+",年齡為:"+param+"歲。");//此時不會報錯,并打印出了:person1的名字為:luck,年齡為:18歲;這里類似JavaScript中jsonp跨域請求數據。} }

this關鍵字:

當方法的局部變量和類的成員變量重名時,根據就近原則使用變量,若要訪問成員變量,可以在成員變量前面加this點.如:

//1.創建類: public class ThisKey{String names;public void sayHello(String names){System.out.println(names+"說:"+names+",你好!");//luck說:luck,你好!System.out.println(this.names+"說:"+names+",你好!");//jack說:luck,你好!//this代表當前類,實例化對象后代表實例化的對象} } //2.實例化對象: public class ThisKeyObj{public static void main(String[] args){ThisKey thiskeyobj = new ThisKey();thiskeyobj.names = "jack";thiskeyobj.sayHello("luck");/*System.out.println(names+"說:"+names+",你好!");//luck說:luck,你好!System.out.println(this.names+"說:"+names+",你好!");//jack說:luck,你好!不使用this方法會使用參數,若使用this方法會使用成員變量!*/ }; }

構造方法:

構造方法是專門用來創建對象的方法,通過關鍵字new創建對象時,其實就是在調用構造方法,其格式為:public 類名稱(參數類型 參數名稱){方法體}

注意事項:

1.構造方法名稱和所在類名稱一致

2.構造方法不能寫返回值,void也不用寫

3.如果沒有編寫任何構造方法,編譯器將自動編譯一個構造方法,其什么事也不做。

4,如果自己編寫了構造方法,編譯器將不再自動編譯一個構造方法,使用自己編寫的構造方法即可。

5.構造方法也可以重載。

public class Person{public Person(){}; }

定義一個標準類:

標準類也叫Java Bean,一個標準的類要滿足以下幾點:

1.所有成員變量使用private關鍵字進行修飾。

2.為每一個成員變量編寫get-和set-方法。

3.編寫一個無參數的構造方法。

4.編寫一個全參數的構造方法。

public class Student {private String name; // 姓名private int age; // 年齡public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;} }

提示:本文圖片等素材來源于網絡,若有侵權,請發郵件至郵箱:810665436@qq.com聯系筆者刪除。
筆者:苦海

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Java中的对象、private关键字、this关键字、构造方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。