构造器(有参、无参)
構造器: 就是和類名相同但無返回類型的方法。用于當前或某一對象的實例化,并將當前或某一對象返回。無參構造:1、如果使用new關鍵字實際上是調用無參構造器;2、無參構造往往是為了初始化一些值。有參構造:一旦定義了有參構造,必須要顯示定義無參構造
使用構造器需注意:
下面是有參無參構造的一個例子:
1、編寫一個交通工具類Vehicle類。具有:屬性——載客量(capacity),方法:(1)無參構造方法(給capacity初始化值為2,并輸出“執行交通工具類的無參構造方法?!?#xff09;; (2)有參構造方法(傳參給capacity初始化,并輸出“執行交通工具的有參構造方法。”);(3) capacity的set、get方法;(4) print方法:輸出capacity. (5)run方法,從控制臺中輸出“這是交通工具run方法”。
2、創建Vehicle類的三個子類,Motor類表示汽車,Ship類表示船,Aeroplane類表示飛機類.各自具有;屬性——speed,表示速度. 方法: (1)無參構造方法(給speed初始化值為0,并輸出“執行XX類的無參構造方法?!?#xff09;;(2)有參構造方法(用super關鍵字調用父類的有參構造方法,傳參給speed初始化,并輸出“執行XX類的有參構造方法。”)(3) 加速(speedup):speed+10并返回speed;(4) 減速(speeddown):speed-15并返回speed;(5) 重寫print方法:輸出speed和capacity。(6) 三個類各自的run方法.分別輸出”汽車正在公路上奔跑”,”輪船正在大海上航行”,”飛機在天上飛行”
3、創建Motor的二個子類, Bus和Car(均為final類),分別表示公共汽車和轎車,分別寫出各自的run方法。各自具有屬性——載客量(capacity);方法:(1) 無參構造方法(給capacity初始化值為20,并輸出“執行XX類的無參構造方法?!?#xff09;(2) 有參構造方法(用super關鍵字調用父類的有參構造方法,傳參給capacity初始化,并輸出“執行XX類的有參構造方法?!?#xff09;(3)寫出它們自己的run方法.
同理,寫出輪船的兩個子類,航空母艦和豪華游輪.飛機的兩個子類,戰斗機和客機.
4、main函數中調用無參構造方法創建一個Car的對象car;調用加速方法將速度加至50,調用print方法和run方法;調用減速方法,將速度減至20,調用print方法。調用有參構造方法創建一個Bus的對象bus;調用print方法和run方法。航空母艦和豪華游輪,戰斗機和客機.分別選擇一個構造方法,并調用print和run方法.
交通工具
package 交通工具;public class Vehicle {public int capacity;Vehicle() {capacity=2;System.out.println("執行交通工具類的無參構造方法。");}Vehicle(int capacity) {this.capacity=capacity;System.out.println("執行交通工具的有參構造方法。");}public int getCapacity() {return capacity;}public void setCapacity(int capacity) {this.capacity = capacity;}public void print() {System.out.println("載客量:"+capacity);}public void run() {System.out.println("這是交通工具run方法");}}汽車類
package 交通工具;public class Motor extends Vehicle {public int speed;public Motor() {speed=0;System.out.println("執行汽車類的無參構造方法。");}public Motor(int capacity,int speed) {super(capacity);this.speed=speed;System.out.println("執行汽車類的有參構造方法。");}public int getSpeed() {return speed;}public void setSpeed(int speed) {this.speed = speed;}public int speedUp(){speed=speed+10;return speed;}public int speedDown() {speed=speed-15;return speed;}public void print(){System.out.println("速度:"+speed);System.out.println("載客量:"+capacity);}public void run(){System.out.println("汽車正在公路上奔跑");}}轎車
package 交通工具;public final class Car extends Motor {int capacity;public Car() {capacity=20;System.out.print("執行轎車類的無參構造方法。");}public Car(int capacity,int speed) {super(capacity,speed);this.capacity=capacity;System.out.println("執行轎車類的有參構造方法。");}public void run() {System.out.println("轎車速度為:"+speed); System.out.println("轎車車載客量:"+capacity);}}公共汽車
package 交通工具;public final class Bus extends Motor {public int capacity;public Bus() {capacity=20;System.out.println("執行公共汽車類的無參構造方法。");}public Bus(int capacity,int speed) {super(capacity,speed);this.capacity=capacity;System.out.println("執行公共汽車類的有參構造方法。");}public void run() {System.out.println("速度:"+speed);System.out.println("載客量:"+capacity);}}輪船類
package 交通工具;public class Ship extends Vehicle {public int speed;//無參構造方法public Ship() {speed=0;System.out.println("執行汽車類的無參構造方法。");}public Ship(int capacity,int speed) {//調用父類的有參構造方法super(capacity);this.speed=speed;System.out.println("執行汽車類的有參構造方法。");}public int getSpeed() {return speed;}public void setSpeed(int speed) {this.speed = speed;}public int speedUp() {speed=speed+10;return speed;}public int speedDown() {speed=speed-15;return speed;}public void print() {System.out.println("速度"+speed);System.out.println("載客量"+capacity);}public void run() {System.out.println("輪船正在大海上航行");}}航空母艦
package 交通工具;public final class Birdfarm extends Ship{int capacity;public Birdfarm () {capacity=20;System.out.print("執行航空母艦類的無參構造方法。");}public Birdfarm (int capacity,int speed) {super(capacity,speed);this.capacity=capacity;System.out.println("執行航空母艦類的有參構造方法。");}public void run() {System.out.println("航空母艦速度為:"+speed); System.out.println("航空母艦車載客量:"+capacity);}}豪華游輪
package 交通工具;public final class Luxuryship extends Ship{int capacity;public Luxuryship () {capacity=20;System.out.print("執行豪華游輪類的無參構造方法。");}public Luxuryship (int capacity,int speed) {super(capacity,speed);this.capacity=capacity;System.out.println("執行豪華游輪類的有參構造方法。");}public void run() {System.out.println("豪華游輪速度為:"+speed); System.out.println("豪華游輪載客量:"+capacity); }}飛機類
package 交通工具;public class Aeroplane extends Vehicle {public int speed;//無參構造方法public Aeroplane() {speed=0;System.out.println("執行汽車類的無參構造方法。");}public Aeroplane (int capacity,int speed) {//調用父類的有參構造方法super(capacity);this.speed=speed;System.out.println("執行汽車類的有參構造方法。");}public int getSpeed() {return speed;}public void setSpeed(int speed) {this.speed = speed;}public int speedUp() {speed=speed+10;return speed;}public int speedDown() {speed=speed-15;return speed;}public void print() {System.out.println("速度"+speed);System.out.println("載客量"+capacity);}public void run() {System.out.println("飛機在天上飛行");}}戰斗機
package 交通工具;public final class Fighter extends Aeroplane{int capacity;public Fighter () {capacity=20;System.out.print("執行戰斗機類的無參構造方法。");}public Fighter (int capacity,int speed) {super(capacity,speed);this.capacity=capacity;System.out.println("執行戰斗機類的有參構造方法。");}public void run() {System.out.println("戰斗機速度為:"+speed); System.out.println("戰斗機載客量:"+capacity); }}客機
package 交通工具;public final class Aircraft extends Aeroplane {int capacity;public Aircraft () {capacity=20;System.out.print("執行客機類的無參構造方法。");}public Aircraft (int capacity,int speed) {super(capacity,speed);this.capacity=capacity;System.out.println("執行客機類的有參構造方法。");}public void run() {System.out.println("客機速度為:"+speed); System.out.println("客載客量:"+capacity); }}總結
以上是生活随笔為你收集整理的构造器(有参、无参)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何用计算机算时间,在win10电脑的计
- 下一篇: 新建虚拟机向导