亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java 構(gòu)造方法的使用詳解

 更新時間:2021年11月05日 10:45:27   作者:兮動人  
構(gòu)造方法是類的一種特殊方法,用來初始化類的一個新的對象,在創(chuàng)建對象(new 運算符)之后自動調(diào)用。Java 中的每個類都有一個默認(rèn)的構(gòu)造方法,并且可以有一個以上的構(gòu)造方法

1. 看一個需求

看一個需求:前面我們在創(chuàng)建人類的對象時,是先把一個對象創(chuàng)建好后,再給他的年齡和姓名屬性賦值,如果現(xiàn)在要求,在創(chuàng)建人類的對象時,就直接指定這個對象的年齡和姓名,該怎么做? 這時就可以使用構(gòu)造器。

2. 基本語法

[修飾符] 方法名(形參列表){
方法體;
}

說明:

  • 構(gòu)造器的修飾符可以默認(rèn), 也可以是 public protected private
  • 構(gòu)造器沒有返回值
  • 方法名 和類名字必須一樣
  • 參數(shù)列表 和 成員方法一樣的規(guī)則
  • 構(gòu)造器的調(diào)用, 由系統(tǒng)完成

3. 基本介紹

構(gòu)造方法又叫構(gòu)造器(constructor),是類的一種特殊的方法,它的主要作用是完成對新對象的初始化。它有幾個特點:

  • 方法名和類名相同
  • 沒有返回值
  • 在創(chuàng)建對象時,系統(tǒng)會自動的調(diào)用該類的構(gòu)造器完成對象的初始化。

4. 快速入門

現(xiàn)在就用構(gòu)造方法來完成剛才提出的問題:在創(chuàng)建人類的對象時,就直接指定這個對象的年齡和姓名

Constructor01.java

public class Constructor01 { 

	//編寫一個main方法
	public static void main(String[] args) {
		//當(dāng)我們new 一個對象時,直接通過構(gòu)造器指定名字和年齡
		Person p1 = new Person("smith", 80);
		System.out.println("p1的信息如下");
		System.out.println("p1對象name=" + p1.name);//smith
		System.out.println("p1對象age=" + p1.age);//80
	}
}

//在創(chuàng)建人類的對象時,就直接指定這個對象的年齡和姓名
//
class Person {
	String name;
	int age;
	//構(gòu)造器
	//老韓解讀
	//1. 構(gòu)造器沒有返回值, 也不能寫void
	//2. 構(gòu)造器的名稱和類Person一樣
	//3. (String pName, int pAge) 是構(gòu)造器形參列表,規(guī)則和成員方法一樣
	public  Person(String pName, int pAge) {
		System.out.println("構(gòu)造器被調(diào)用,完成對象的屬性初始化");
		name = pName;
		age = pAge;
	}
}

在這里插入圖片描述

5. 注意事項和使用細(xì)節(jié)

在這里插入圖片描述

public class ConstructorDetail { 

	//編寫一個main方法
	public static void main(String[] args) {
		Person p1 = new Person("xdr630", 24);//第1個構(gòu)造器
		Person p2 = new Person("tom");//第2個構(gòu)造器

	}
}

class Person {
	String name;
	int age;//默認(rèn)0
	//第1個構(gòu)造器
	public Person(String pName, int pAge) {
		name = pName;
		age = pAge;
	}
	//第2個構(gòu)造器, 只指定人名,不需要指定年齡
	public Person(String pName) {
		name = pName;
	}
}

在這里插入圖片描述

class Dog {
	//如果程序員沒有定義構(gòu)造器,系統(tǒng)會自動給類生成一個默認(rèn)無參構(gòu)造器(也叫默認(rèn)構(gòu)造器)
	//使用javap指令 反編譯看看
	/*
		默認(rèn)構(gòu)造器
		Dog() {
			
		}
	 */
	//一旦定義了自己的構(gòu)造器,默認(rèn)的構(gòu)造器就覆蓋了,就不能再使用默認(rèn)的無參構(gòu)造器,
	//除非顯式的定義一下,即:  Dog(){}  寫 (這點很重要)
	//
	public Dog(String dName) {
		//...
	}
	Dog() { //顯式的定義一下 無參構(gòu)造器

	}
}

6. 練習(xí)

ConstructorExercise.java

在前面定義的 Person 類中添加兩個構(gòu)造器:

  • 第一個無參構(gòu)造器:利用構(gòu)造器設(shè)置所有人的 age 屬性初始值都為 18
  • 第二個帶 pName 和 pAge 兩個參數(shù)的構(gòu)造器:使得每次創(chuàng)建 Person 對象的同時初始化對象的 age 屬性值和 name 屬性值。分別使用不同的構(gòu)造器:
public class ConstructorExercise { 

	//編寫一個main方法
	public static void main(String[] args) {
		Person p1 = new Person();//無參構(gòu)造器

		//下面輸出 name = null, age = 18
		System.out.println("p1的信息 name=" + p1.name + " age=" + p1.age);

		Person p2 = new Person("scott", 50);
		//下面輸出 name = scott, age = 50
		System.out.println("p2的信息 name=" + p2.name + " age=" + p2.age);

	}
}

/**
 * 在前面定義的Person類中添加兩個構(gòu)造器:
 * 第一個無參構(gòu)造器:利用構(gòu)造器設(shè)置所有人的age屬性初始值都為18
 * 第二個帶pName和pAge兩個參數(shù)的構(gòu)造器:
 * 使得每次創(chuàng)建Person對象的同時初始化對象的age屬性值和name屬性值。
 * 分別使用不同的構(gòu)造器,創(chuàng)建對象.
 */

class Person {
	String name;//默認(rèn)值 null
	int age;//默認(rèn) 0
	//第一個無參構(gòu)造器:利用構(gòu)造器設(shè)置所有人的age屬性初始值都為18
	public Person() {
		age = 18;
	}
	//第二個帶pName和pAge兩個參數(shù)的構(gòu)造器
	public Person(String pName, int pAge) {
		name = pName;
		age = pAge;
	}
}

在這里插入圖片描述

到此這篇關(guān)于Java 構(gòu)造方法的使用詳解的文章就介紹到這了,更多相關(guān)Java 構(gòu)造方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Java Project項目打包成jar,并生成exe文件

    詳解Java Project項目打包成jar,并生成exe文件

    本篇文章主要介紹了Java Project項目打包成jar,并生成exe文件,非常具有實用價值,有興趣的可以了解一下。
    2017-01-01
  • Java實現(xiàn)FTP服務(wù)器功能實例代碼

    Java實現(xiàn)FTP服務(wù)器功能實例代碼

    FTP(File Transfer Protocol 文件傳輸協(xié)議)是Internet 上用來傳送文件的協(xié)議,本文給大家分享Java實現(xiàn)FTP服務(wù)器功能實例代碼,對java實現(xiàn)ftp服務(wù)器相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • Java Optional<Foo>轉(zhuǎn)換成List<Bar>的實例方法

    Java Optional<Foo>轉(zhuǎn)換成List<Bar>的實例方法

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于Java Optional<Foo>轉(zhuǎn)換成List<Bar>的實例方法,有需要的朋友們可以跟著學(xué)習(xí)下。
    2021-06-06
  • Java利用TCP實現(xiàn)服務(wù)端向客戶端消息群發(fā)的示例代碼

    Java利用TCP實現(xiàn)服務(wù)端向客戶端消息群發(fā)的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Java如何利用TCP協(xié)議實現(xiàn)服務(wù)端向客戶端消息群發(fā)功能,文中的示例代碼講解詳細(xì),需要的可以參考下,希望對你有所幫助
    2022-08-08
  • springboot 設(shè)置局域網(wǎng)訪問的實現(xiàn)步驟

    springboot 設(shè)置局域網(wǎng)訪問的實現(xiàn)步驟

    Spring Boot是一個開源Java-based框架,用于創(chuàng)建獨立的、生產(chǎn)級別的Spring應(yīng)用,它旨在簡化Spring應(yīng)用的初始搭建及開發(fā)過程,通過提供各種自動配置的starter包,Spring Boot使得項目配置變得簡單快速,感興趣的朋友一起看看吧
    2024-02-02
  • IntelliJ IDEA2020.1版本更新pom文件自動導(dǎo)包的方法

    IntelliJ IDEA2020.1版本更新pom文件自動導(dǎo)包的方法

    這篇文章主要介紹了IntelliJ IDEA2020.1版本更新pom文件自動導(dǎo)包的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • MyBatis直接執(zhí)行SQL的工具SqlMapper

    MyBatis直接執(zhí)行SQL的工具SqlMapper

    今天小編就為大家分享一篇關(guān)于MyBatis直接執(zhí)行SQL的工具SqlMapper,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • java實現(xiàn)AES 32位加密解密的方案

    java實現(xiàn)AES 32位加密解密的方案

    Oracle在其官方網(wǎng)站上提供了無政策限制權(quán)限文件(Unlimited Strength Jurisdiction Policy Files),我們只需要將其部署在JRE環(huán)境中,就可以解決限制問題,下面給大家介紹下java實現(xiàn)AES 32位加密解密的方案,感興趣的朋友一起看看吧
    2021-11-11
  • Java中保留兩位小數(shù)的四種方法實現(xiàn)實例

    Java中保留兩位小數(shù)的四種方法實現(xiàn)實例

    今天小編就為大家分享一篇關(guān)于Java中保留兩位小數(shù)的四種方法實現(xiàn)實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 從log4j切換到logback后項目無法啟動的問題及解決方法

    從log4j切換到logback后項目無法啟動的問題及解決方法

    這篇文章主要介紹了從log4j切換到logback后項目無法啟動的問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01

最新評論