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

歡迎訪問 生活随笔!

生活随笔

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

java

Java中的构造器的作用?(构造方法的作用与特点)

發布時間:2024/3/26 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中的构造器的作用?(构造方法的作用与特点) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java中的構造器的作用是什么?

今天看到一個問題,那就是Java中的構造器的作用是什么,第一反應是:嗯?構造器?不就是構造方法嘛,只是只是叫法不一樣,但是習慣喊構造方法的我還是忍不住吐槽了,回歸正題,用簡單來說構造器的作用就是:

  • 創建對象
  • 初始化成員變量

那么問題來了,構造方法的特點有哪些呢:

  • 首先是構造方法的方法名要與類名一致
  • 構造方法分為:有參構造方法和無參構造方法
  • 構造方法無返回類型,void類型也不可以
  • 構造方法是不能被繼承的,但是可以使用super來調用,且super必須聲明在在子類構造方法中的首行
  • 默認有一個無參構造方法,當自定義無參構造方法的時候,默認則無效
  • 可以沒有構造方法(編譯器默認有一個無參構造方法),也可以有多個構造方法,他們之間構成重載關系

一開始學習JavaSE的時候,對于構造方法的概念還十分模糊,也不知道怎么用,在哪兒用,只會盲目的寫差不多的getter setter方法模板:

public class ConstructionDemo5 {private String name;private int number;private double score;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getNumber() {return number;}public void setNumber(int number) {this.number = number;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}public static void main(String[] args) {ConstructionDemo5 constructionDemo5=new ConstructionDemo5();constructionDemo5.setName("杜");constructionDemo5.setNumber(21);constructionDemo5.setScore(97.4);System.out.println("我是"+ constructionDemo5.name+",我學號是:"+ constructionDemo5.number+",我這次成績是:"+ constructionDemo5.score);} } 我是杜,我學號是:21,我這次成績是:97.4Process finished with exit code 0

從上面的代碼看來,new對象,調用set方法賦值,這看起來似乎沒什么問題,但是在需要給更多的成員變量賦值的時候,實例化更多對象的時候,就很容易造成紕漏,上面的方法是會增加我們的工作量,并且冗長的代碼也不適宜閱讀,那該怎么辦呢?

這時候就要用到構造方法了

public class ConstructionDemo6 {private String name;private int number;private double score;public ConstructionDemo6(String name, int number, double score) {this.name = name;this.number = number;this.score = score;}public static void main(String[] args) {ConstructionDemo6 construction=new ConstructionDemo6("杜",1,99.9);System.out.println("我是"+ construction.name+",我學號是:"+ construction.number+",我這次成績是:"+ construction.score);} } 我是杜,我學號是:1,我這次成績是:99.9Process finished with exit code 0

上面的例子中用到了有參構造方法,通過構造方法我們可以避免了忘給某些成員變量賦值的問題。

關于構造方法,一開始我說到分為有參構造方法和無參構造方法,默認有一個無參構造方法,當自定義無參構造方法的時候,默認則無效可以沒有構造方法(編譯器默認有一個無參構造方法),也可以有多個構造方法,他們之間構成重載關系。

下面我舉出相關例子:

package com.JavaSe.Demo;/*** @Description TODO* @Author Du* @Date 2021/5/28 18:27*/ public class ConstructionDemo {//定義類Construction1 自己不手動添加任何無參或有參數構造方法static class Construction1{private int age;private String name;private String sex;}//定義類Construction2 自己添加無參的構造方法static class Construction2{private int age;private String name;private String sex;public Construction2(){System.out.println("無參構造方法被調用");}}//定義類Construction3 有參數的構造方法static class Construction3{private int age;private String name;private String sex;public Construction3(String name, String sex, int age ){this.name = name ;this.sex = sex;this.age = age;}}//定義類Construction4 自己添加無參的構造方法,和有參數的構造方法static class Construction4{private int age;private String name;private String sex;//不帶參數的構造函數,可以被重載public Construction4(){System.out.println("無參構造方法被調用");}//帶參數對的構造函數public Construction4(String name, String sex, int age ){this.name = name;this.sex = sex;this.age = age;}//方法重載public Construction4(String name,double score){this.name=name;}}public static void main(String[] args) {Construction1 construction1 = new Construction1();//編譯通過;①實例化Person對象 ②自動調用構造方法Construction( )Construction2 construction2 = new Construction2();//編譯通過;打印: 無參構造方法被調用// 這樣寫,編譯器會報錯,原因是系統默認的無參構造方法被有參構造方法覆蓋,編譯器不能再提供無參構造方法Construction3 construction3 = new Construction3();//Person4 Construction4 = new Person4();//編譯通過;打印: 無參構造方法被調用Construction4 Construction4 = new Construction4("qzz", "man", 18);//編譯通過;} }

總結

以上是生活随笔為你收集整理的Java中的构造器的作用?(构造方法的作用与特点)的全部內容,希望文章能夠幫你解決所遇到的問題。

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