最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA構(gòu)造方法/構(gòu)造器以及this使用方式

 更新時間:2024年03月27日 08:58:23   作者:chuanzhangsss  
這篇文章主要介紹了JAVA構(gòu)造方法/構(gòu)造器以及this使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

構(gòu)造方法/構(gòu)造器

基本語法

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

1.構(gòu)造器的修飾符可以默認,也可以是public protected private

2.構(gòu)造器沒有返回值

3.方法名和類名字必須一樣

4.參數(shù)列表和成員方法一樣的規(guī)則

5.構(gòu)造器的調(diào)用系統(tǒng)完成

基本介紹

1.方法名和類名相同

2.沒有返回值

3.在創(chuàng)建對象時,系統(tǒng)會自動調(diào)用該類的構(gòu)造器完成對象的初始化

4.構(gòu)造器是完成對象的初始化,并不是創(chuàng)建對象

5.在創(chuàng)建對象時,系統(tǒng)自動的調(diào)用該類的構(gòu)造方法

 
public class Main{
    public static void main(String[] srgs){
        Person p1 = new Person("king",40);
        Person p2 = new Person("tom");
    }
}
//第一個構(gòu)造器
class Person{
public Person(String pName;int pAge){
    name = pName;
    Age = pAge;
}
//第二個構(gòu)造器,只指定姓名,不指定年齡
public Person(String pName){
    name = pName;
}
}

6.如果沒有定義構(gòu)造器,系統(tǒng)會自動生成一個默認的無參構(gòu)造器(也叫默認構(gòu)造器)比如Dog(){ },使用javap指令反編譯看看

7.一旦定義了自己的構(gòu)造器,默認的構(gòu)造器就覆蓋了,就不能再使用默認的無參構(gòu)造器,除非顯示的定義一下,即:Person(){ }

 
public class Main{
    public static void main(String[] srgs){
        Dog d = new Dog();
    }
}
class Dog{
    /**如果沒有定義構(gòu)造器,系統(tǒng)會自動生成一個默認的無參構(gòu)造器(也叫默認構(gòu)造器)比如Dog(){ },使用javap指令反編譯看看 // javap Dog.class
    默認構(gòu)造器
    Dog(){
    }
    */
    //一旦定義了自己的構(gòu)造器,默認的構(gòu)造器就覆蓋了,就不能再使用默認的無參構(gòu)造器,除非顯示的定義一下,即:Person(){ }
    public Dog(String pName){ 
    ...... 
    }
    
}

this

 
public class Main{
    public static void main(String[] srgs){
        Dog d = new Dog("大壯",10);
        d1.info();
    }
}
class Dog{ // 類
    String nmae;
    int ang;
    public dog(String dName,int dAge){
        name = dName;
        age = dAge;
    }
    //如果我們的構(gòu)造器的形參,能夠直接寫成屬性名,就更好
    public void info(){//成員方法,輸出屬性+信息
        System.out.println(name + "\t" + age + "\t");
    }
}

問題:

構(gòu)造方法的輸入?yún)?shù)名不是非常的好,如果能夠?qū)Name改成name就好了,

但是我們會發(fā)現(xiàn)按照變量的作用域原則,name的值就是null,怎么解決

引出->this

 
public class Main{
    public static void main(String[] srgs){
         Dog d = new Dog("大壯",10);
        d1.info();
    }
}
class Dog{ // 類
    String nmae;
    int ang;
    //構(gòu)造器的name和age是局部變量不是屬性
    public dog(String name,int age){
        //this.name就是當前對象屬性nmae
       this.name = name;
        //this.age就是當前對象屬性age
        this.age = age;
    }
    public void info(){//成員方法,輸出屬性+信息
        System.out.println(name + "\t" + age + "\t");
    }
}

this的注意事項和使用細節(jié)

1.this關鍵字可以用來訪問本類的屬性、方法、構(gòu)造器

2. this用于區(qū)分當前類的屬性和局部變量

3. 訪問成員方法的語法:this.方法名(參數(shù)列表);

4. 訪問構(gòu)造器語法:this(參數(shù)列表);注意只能在構(gòu)造器中使用

5. this不能在類定義的外部使用,只能在類定義的方法中使用。

 
public class Main{
    public static void main(String[] srgs){
       T t = new T(); 
        t.f2(); 
    }
}
class T{
    /*
    注意:訪問構(gòu)造器語法:this(參數(shù)列表);
    必須放置第一條語句
    */
    public T(){
        //這里去訪問T(String name,int age)構(gòu)造器
        this("jack",1000);
        System.out.println("T()構(gòu)造器");
    }
    public T(String name,int age){
        System.out.println("T(String name,int age)構(gòu)造器");
    }
    public void f1(){
         System.out.println("f1()方法..");
    }
     public void f2(){
         System.out.println("f2()方法..");
         //調(diào)用本類的 f1
         //第一種方法
         f1();
         //第二種方法
         this.f1();
    }
}

例題

定義Person類,里面有name、age屬性,并提供compareTo比較方法,用于判斷·是否和另一個人相等,提供測試類Main用于測試,名字和年齡完全一樣,就返回true,否則返回false

 
public class Main{
    public static void main(String[] srgs){
      Person p = new Person("mary",20);
         Person p = new Person("smith",30);
         System.out.println(p1.compareTo(p2));
    }
}
class Person{
    String name;
    int age;
    //構(gòu)造器
    public Person(String name,int age){
        this.name = name;
        this.age = age;
    }
    //compareTo方法
    public Boolean compareTo(Person p){
        if(this.name.equals(p.name)&&this.age == p.age){
            return true;
        }else{
            return false;
        }
    }
}//結(jié)果返回flase 
 
 
 

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java 讀取外部資源的方法詳解及實例代碼

    Java 讀取外部資源的方法詳解及實例代碼

    這篇文章主要介紹了Java 讀取外部資源的方法詳解及實例代碼的相關資料,經(jīng)常有讀取外部資源的要求,如配置文件等等需要讀取,需要的朋友可以參考下
    2017-03-03
  • Java連接Redis的兩種方式

    Java連接Redis的兩種方式

    Redis 是一種高性能的鍵值存儲數(shù)據(jù)庫,廣泛應用于緩存、消息隊列、會話存儲等場景,Java 作為一門廣泛使用的編程語言,提供了多種方式來連接和操作 Redis,本文將介紹兩種常用的 Java 連接 Redis 的方式,需要的朋友可以參考下
    2025-03-03
  • SpringCloudConfig之client端報錯Could?not?resolve?placeholder問題

    SpringCloudConfig之client端報錯Could?not?resolve?placeholder問

    這篇文章主要介紹了SpringCloudConfig之client端報錯Could?not?resolve?placeholder?‘from‘?in?value?“${from}“問題及解決方案,具有很好的參考價值,希望對大家有所幫助
    2022-12-12
  • SpringCloud使用Nacos保存和讀取變量的配置方法

    SpringCloud使用Nacos保存和讀取變量的配置方法

    在使用SpringCloud開發(fā)微服務時,經(jīng)常會遇到一些比較小的后臺參數(shù)配置,這些配置不足以單獨開一張表去存儲,而且其他服務會讀取該參數(shù),這篇文章主要介紹了SpringCloud使用Nacos保存和讀取變量,需要的朋友可以參考下
    2022-07-07
  • Java StackTraceElement實例代碼

    Java StackTraceElement實例代碼

    這篇文章主要介紹了Java StackTraceElement實例代碼,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • 了解java Struts攔截器的相關操作

    了解java Struts攔截器的相關操作

    Struts為我們實現(xiàn)了很多的功能,比如數(shù)據(jù)自動封裝,文件上傳功能阿。Struts為我們提供的這些功能都是通過攔截器完成的。下面我們來詳細了解一下吧
    2019-06-06
  • java 遍歷Map的5種方法示例詳解

    java 遍歷Map的5種方法示例詳解

    在 java 中,Map遍歷的方式主要有for循環(huán)、迭代器 Iterator 、Lambda 表達式遍歷的 forEach、Stream API 這幾種方式,下面給大家介紹java 遍歷Map的5種方法,感興趣的朋友一起看看吧
    2025-06-06
  • Spring?Boot父子工程POM依賴關系舉例詳解

    Spring?Boot父子工程POM依賴關系舉例詳解

    這篇文章主要介紹了Spring?Boot父子工程POM依賴關系的相關資料,Spring Boot父子工程通過Maven繼承機制實現(xiàn)統(tǒng)一版本、依賴和插件管理,模塊化開發(fā)與代碼復用,提升項目可維護性與效率,需要的朋友可以參考下
    2025-08-08
  • 深入解析Java中的InterruptedException從異常處理到最佳實踐方案

    深入解析Java中的InterruptedException從異常處理到最佳實踐方案

    在Java多線程編程中,InterruptedException 是一個常見但又容易被忽視的異常,本文將通過一個實際的日志案例,分析 InterruptedException 的產(chǎn)生原因、影響,并提供合理的解決方案和最佳實踐,感興趣的朋友一起看看吧
    2025-06-06
  • SpringBoot整合MP通過Redis實現(xiàn)二級緩存方式

    SpringBoot整合MP通過Redis實現(xiàn)二級緩存方式

    這篇文章主要介紹了SpringBoot整合MP通過Redis實現(xiàn)二級緩存方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評論

抚顺市| 甘谷县| 贡嘎县| 防城港市| 平江县| 渝中区| 岳普湖县| 枣强县| 山阴县| 怀远县| 嵊泗县| 奉新县| 永安市| 侯马市| 密云县| 秦皇岛市| 南皮县| 邹城市| 疏勒县| 都兰县| 盖州市| 奈曼旗| 三江| 类乌齐县| 武鸣县| 安顺市| 六安市| 包头市| 且末县| 南川市| 临海市| 山丹县| 瑞金市| 宁夏| 吉木萨尔县| 凤台县| 咸阳市| 安西县| 萝北县| 纳雍县| 宁夏|