摘要:一構造器構造方法構造函數在創建對象時必會調用一個特殊的方法,這個方法是初始化對象信息的為服務的。構造函數與類同名且沒有返回值。
一、 構造器(構造方法|構造函數)
在創建對象時(new),必會調用一個特殊的方法,這個方法是初始化對象信息的為new服務的。這個方法稱為“構造器”
使用 new + 構造方法創建一個新的對象。
構造函數是定義在 Java類中的一個用來初始化對象的函數。
構造函數與類同名且沒有返回值。
例如: Person類的構造函數:
public class Person { int id; int age; Person(int n, int i){ id = n; age = i; } }
創建對象時,使用構造函數初始化對象的成員變量
public class Test { public static void main(String[] args) { Person tom = new Person(1, 18); Person jeck = new Person(2, 20); } }二、構造方法的特點:
1) 名稱必須和類名一致,與類名相同
2) 沒有返回類型|void
3) 構造器可以存在return,return有選擇的跳出構造器
4) 不能隨便調用,和new在一起使用,其他時候不能調用
5) 修飾符不能為 final abstract static
作用:
初始化對象信息,不是用于創建對象的
空構造:
沒有參數的構造器、無參構造
1) 一個類中,如果沒有顯示|手動 加入 任意構造器 javac編譯后 自動加入空構造
2) 一旦加入構造器, javac 不會加入空構造器
三、方法的重載方法的重載是指一個類中可以定義有相同的方法名,但參數不同的多個方法。調用時,會根據不同的參數列表選擇對應的方法。
與普通方法一樣,構造方法也可以重載
例子如下:
A:一個對象的內存圖
B:二個對象的內存圖
C:三個對象的內存圖
內存分析
劃分
引用的特點:
1) 同一時刻一個一引用只能指向一個對象
2) 一個對象可以被多個引用所指向,其中一個對其進行更改,該對象的其他引用也可見該變化
3) Java一切為值傳遞,引用拷貝地址
約定俗成的命名規則
類名的首字母大寫
變量名和方法名的首字母小寫
運用駝峰標識
例子:
public class Cat { String color; // 毛的顏色 String name; // 名稱 public void chase(Mice mice){ mice.type = "jerry"; // 改變 System.out.println(name + " 逮 " + mice.type); } public static void main(String[] args) { // 引用 與內存分析(運行期為--》數據的流向) Cat cat = new Cat(); cat = new Cat(); // 引用發生變化,同一個時刻一個引用只能指向一個對象 cat.color = "黑色"; cat.name = "tom"; Mice mice = new Mice(); mice.type = "米奇"; // 將二者聯系起來 --》 依賴 cat.chase(mice); // 傳遞時,值拷貝,拷貝地址,拷貝完成后 一個對象被多個引用所指向 System.out.println(mice.type); // jerry 其中一個對其發生變化,該對象的其他引用也可減該變化 } } class Mice{ String type; }
定義如下類
public class BirthDate { int day; int month; int year; public BirthDate(int d, int m, int y){ day = d; month = m; year = y; } void setDay(int d){ day = d; } void setMonth(int m){ month = m; } void setYear(int y){ year = y; } int getDay(){ return day; } int getMonth(){ return month; } int getYear(){ return year; } void display(){ System.out.println(day + "-" + month + "-" + year); } }
測試類:
public class Test { public static void main(String[] args) { Test test = new Test(); int date = 9; BirthDate d1 = new BirthDate(7,7,1970); BirthDate d2 = new BirthDate(1,1,2000); test.change1(date); test.change2(d1); test.change3(d2); System.out.println(date); System.out.println(d1); System.out.println(d2); } void change1(int i){ i = 1234; } void change2(BirthDate b){ b = new BirthDate(22,2,2004); } void change3(BirthDate b){ b.setDay(22); } }
總結:
對象的創建和使用,必須使用new 關鍵字創建對象,使用對象引用.成員變量來引用對象的成員變量,使用對象引用.方法(參數列表)來調用對象的方法。
同一類的每個對象有不同的成員變量存儲空間,同一類的每個對象共享該類的方法,
非靜態方法是針對每個對象進行調用 。
樂字節原創,轉載請注明出處。請繼續關注樂字節
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75495.html
摘要:二面向對象概述面向過程的設計思想和面向對象的設計思想我要吃魚香肉絲蓋飯面向過程我買菜我洗菜我切菜我放水我點火我做飯我炒菜。。。。 大家好,上次我們講過了樂字節Java編程之方法、調用、重載、遞歸,接下來我們將會進入到Java封裝的內容。Java編程語言發展,面向對象和類。 一、編程語言的發展 機器語言——直接由計算機的指令組成,指令、數據、地址都以0和1組成:可以被計算機直接識別并執行...
摘要:大家好,樂字節的小樂又來了,上一篇是樂字節繼承與權限修飾,也是屬于繼承的,今天繼續繼承方法重寫和關鍵字。三關鍵字表示最終的。修飾類,表示該類不能被繼承修飾方法,表示該方法不能被重寫修飾屬性,表示常量,值一旦確定不可改變。 大家好,樂字節的小樂又來了,上一篇是:樂字節Java|JavaBean、繼承與權限修飾,也是屬于Java繼承的,今天繼續Java繼承-方法重寫、super和final...
摘要:上一篇小樂介紹了新特性函數式接口,大家可以點擊回顧。中引入方法引用新特性用于簡化應用對象方法的調用,方法引用是用來直接訪問類或者實例的已經存在的方法或者構造方法。方法引用是一種更簡潔易懂的表達式。 上一篇小樂介紹了《Java8新特性-函數式接口》,大家可以點擊回顧。這篇文章將接著介紹Java8新特性之方法引用。 Java8 中引入方法引用新特性,用于簡化應用對象方法的調用,?方法引用是...
摘要:在成員方法中或構造器中隱式的傳遞。作用如下在構造器中只能放在第一行屬性避免屬性和形參局部變量同名,發生就近原則實參列表構造器的首行調用其他構造器。關鍵字靜態的公共的。構造塊,先于構造器執行,每創建一個對象執行一次。 大家好,我是樂字節的小樂,從本文開始將會給大家講述Java繼承,一下是Java繼承的知識圖譜:showImg(https://segmentfault.com/img/bV...
摘要:大家好,我是樂字節的小樂,上一次我們說到了核心特性之函數式接口,接下來我們繼續了解又一核心特性方法引用。方法引用是一種更簡潔易懂的表達式。感謝光臨閱讀小樂的,敬請關注樂字節后續將繼續講述等前沿知識技術。 大家好,我是樂字節的小樂,上一次我們說到了Java8核心特性之函數式接口,接下來我們繼續了解Java8又一核心特性——方法引用。 showImg(https://segmentfaul...
閱讀 919·2023-04-25 23:40
閱讀 3706·2021-11-22 15:22
閱讀 3541·2021-10-09 09:44
閱讀 3399·2021-09-23 11:52
閱讀 1251·2021-09-22 15:43
閱讀 780·2021-09-10 10:51
閱讀 2202·2021-09-06 15:02
閱讀 3185·2021-09-06 15:02