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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面向对象——构造方法(重载)

發布時間:2025/4/16 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象——构造方法(重载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

構造方法

1、構造方法概述和格式

(1)概述:給對象的數據(屬性)進行初始化

(2)格式特點

  • 方法名與類名相同(大小寫也要與類名一致)
  • 沒有返回值類型,連void都沒有
  • 沒有具體的返回值return;
public static void main(String[] args) {Phone p = new Phone();} }class Phone{private String brand;private int price; //構造方法public Phone(){System.out.println("啦啦啦");return;}}

2、構造方法的重載

(1)概述

方法名相同,與返回值類型無關(構造方法沒有返回值),只看參數列表

(2)注意事項

  • 如果沒有給出構造方法,系統將自動提供一個構造方法
  • 如果給了構造方法,系統將不再提供構造方法
  • 所以最好一直寫出無參構造方法
public static void main(String[] args) {Phone p1 = new Phone();p1.show();System.out.println("----------------");Phone p2 = new Phone("vivoxplay5",2999);p2.show();} }class Phone{private String brand; //品牌private int price; //價格//無參構造方法public Phone(){System.out.println("無參構造");}//有參構造器public Phone(String brand, int price) {this.brand = brand;this.price = price;System.out.println("有參構造");}public void show(){System.out.println(brand+"..."+price);}}

3、給成員變量賦值的兩種方式的區別

/*** 無參構造方法:給屬性進行初始化* set/get方法:修改屬性值* @param args*/ public static void main(String[] args) {//無參構造創建對象Phone p1 = new Phone(); p1.setBrand("vivoxplay5");p1.setPrice(2999);p1.setBrand("vivo");p1.show();System.out.println("----------------");//有參構造創建對象Phone p2 = new Phone("vivoxplay5",2999);//這種方式并不是改名,而是將原對象變成垃圾//p2 = new Phone("vivo",2000); p2.show();} }class Phone{private String brand; //品牌private int price; //價格public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}//無參構造方法public Phone(){System.out.println("無參構造");}//有參構造器public Phone(String brand, int price) {this.brand = brand;this.price = price;System.out.println("有參構造");}public void show(){System.out.println(brand+"..."+price);}}

4、長方形案例

public static void main(String[] args) {長方形 c = new 長方形(4,6);System.out.println(c.周長());System.out.println(c.面積());} } /*** 定義一個長方形類,求周長和面積的方法* 然后定義一個測試類進行測試**/class 長方形{private int a;private int b;public 長方形() { //無參構造 }public 長方形(int a, int b) { //有參構造super();this.a = a;this.b = b;}public int getA() {return a;}public void setA(int a) {this.a = a;}public int getB() {return b;}public void setB(int b) {this.b = b;}public int 周長(){return (a+b)*2;}public int 面積(){return a*b;} }

5、static關鍵字

特點:

(1)隨著類的加載而加載

(2)優先于對象存在

(3)被類的所有對象共享

  •   舉例:班上的同學應該共用同一個班級編號
  •   如果成員變量是被所有對象共享的,那么它就應該定義為靜態的
  •   舉例:飲水機(用靜態修飾)
  •     ? ? 水杯(不能用靜態修飾)
  •    共性用靜態,特性用非靜態

(4)可以通過類名調用

  •   它本身也可以通過對象名調用
  •   推薦使用類名調用
  •   靜態修飾的內容一般稱為:與類相關的,類成員

注意事項:

(1)在靜態方法中式沒有this關鍵字的

  • 靜態是隨著類的加載而加載,this是隨著對象的創建而存在的
  • 靜態比對象先存在

(2)靜態方法只能訪問靜態的成員變量和靜態的成員方法

public static void main(String[] args) {c c1 = new c();c1.print();c.print1();}} class c{int num1=10; //非靜態成員變量static int num2 = 20; //靜態成員變量public void print(){ //非靜態成員方法,既可以訪問靜態的,也可以訪問非靜態的 System.out.println(num1);System.out.println(num2);}public static void print1(){ //靜態成員方法//System.out.println(num1); //靜態成員方法不能訪問非靜態的 System.out.println(num2);} }

6、靜態變量和成員變量的區別

(1)所屬不同

靜態變量屬于類,所以也稱為類變量

成員變量屬于對象,所以也稱為實例變量(對象變量)

(2)內存中位置不同

靜態變量存儲與方法區的靜態區

成員變量存儲于堆內存

(3)內存出現時間不同

靜態變量隨著類的加載而加載,隨著類的消失而消失

成員變量隨著對象的創建而存在,隨著對象的消失而消失

(4)調用不同

靜態變量可以通過類名調用,也可以通過對象調用

成員變量只能通過對象名調用

7、Math類的隨機數功能

public static void main(String[] args) {double d = Math.random(); //生成一個隨機小數 System.out.println(d);//生成1-100的隨機數int a = (int)(Math.random()*100+1);System.out.println(a);}}

?

轉載于:https://www.cnblogs.com/lc1997/p/10685877.html

總結

以上是生活随笔為你收集整理的面向对象——构造方法(重载)的全部內容,希望文章能夠幫你解決所遇到的問題。

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