构造器: 就是和类名相同但无返回类型的方法。用于当前或某一对象的实例化,并将当前或某一对象返回。无参构造:1、如果使用new关键字实际上是调用无参构造器;2、无参构造往往是为了初始化一些值。有参构造:一旦定义了有参构造,必须要显示定义无参构造
使用构造器需注意:

1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名)2.每个类可以有一个以上的构造器3.构造器可以有0个、1个或1个以上的参数4.构造器没有返回值5.构造器总是伴随着new操作一起调用

下面是有参无参构造的一个例子:

1、编写一个交通工具类Vehicle类。具有:属性——载客量(capacity),方法:(1)无参构造方法(给capacity初始化值为2,并输出“执行交通工具类的无参构造方法。”); (2)有参构造方法(传参给capacity初始化,并输出“执行交通工具的有参构造方法。”);(3) capacity的set、get方法;(4) print方法:输出capacity. (5)run方法,从控制台中输出“这是交通工具run方法”。
2、创建Vehicle类的三个子类,Motor类表示汽车,Ship类表示船,Aeroplane类表示飞机类.各自具有;属性——speed,表示速度. 方法: (1)无参构造方法(给speed初始化值为0,并输出“执行XX类的无参构造方法。”);(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类的无参构造方法。”)(2) 有参构造方法(用super关键字调用父类的有参构造方法,传参给capacity初始化,并输出“执行XX类的有参构造方法。”)(3)写出它们自己的run方法.
同理,写出轮船的两个子类,航空母舰和豪华游轮.飞机的两个子类,战斗机和客机.
4、main函数中调用无参构造方法创建一个Car的对象car;调用加速方法将速度加至50,调用print方法和run方法;调用减速方法,将速度减至20,调用print方法。调用有参构造方法创建一个Bus的对象bus;调用print方法和run方法。航空母舰和豪华游轮,战斗机和客机.分别选择一个构造方法,并调用print和run方法.

package 交通工具;public class Main {public static void main(String[] args) {System.out.println("汽车类->");Car car = new Car();car.setSpeed(40);System.out.println("最开始的初速度为:40");System.out.println("加速***********");car.speedUp();car.print();car.run();System.out.println("减速***********");car.speedDown();car.speedDown();car.print();System.out.println("****************");Bus bus = new Bus(10,100);bus.print();bus.run();System.out.println("船的子类->");Birdfarm birdfarm = new Birdfarm();birdfarm.setSpeed(40);System.out.println("最开始的初速度为:40");System.out.println("加速***********");birdfarm.speedUp();birdfarm.print();birdfarm.run();System.out.println("减速***********");birdfarm.speedDown();birdfarm.speedDown();birdfarm.print();System.out.println("****************");Luxuryship luxuryship = new Luxuryship(10,100);luxuryship.print();luxuryship.run();System.out.println("飞机的子类->");Fighter fighter = new Fighter();fighter.setSpeed(40);System.out.println("最开始的初速度为:40");System.out.println("加速***********");fighter.speedUp();fighter.print();fighter.run();System.out.println("减速***********");fighter.speedDown();fighter.speedDown();fighter.print();System.out.println("****************");Aircraft aircraft = new Aircraft(10,100);aircraft.print();aircraft.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); }}

构造器(有参、无参)相关推荐

  1. java构造函数有参无参_Java Bean 为什么必须要有一个无参构造函数

    JAVAEE中,javaBean是一个很重要的概念 而JavaBean还有以下的使用习惯 首先我们知道,有两种方法为java对象中的元素赋值, 1. 通过类的带参数构造函数的方法 2. 通过类的set ...

  2. 第八天学习Java的笔记(方法有参无参,有返回值和无返回值)

    48天 方法 对比有参数和无参数 package Demo03;/* * 有参数:小括号当中有内容,当一个方法需要一些数据条件才能完成任务的时候,就是有参数 * 例如两个数字相加,必须知道两个数字各是 ...

  3. SQL那些事儿(十四)--C#调用oracle存储过程(查询非查询and有参无参)深度好文

    最近老总让使用存储过程,说这个比较好用,抓起本oracle书看了看,写存储过程不是很难,但是写了存储过程调用的时候遇到许多问题,经过一天时间,把各种能遇到i的问题基本总结了下,跟大家分享. 照例画了张 ...

  4. lombok进行有参无参构造出现的问题

    查看方法 解决方法 运行成功

  5. 函数有参无参真有很大区别吗?

  6. ExtJs6 路由有参无参使用方式

    当我们想通过监听uri的地址的改变来做一些操作时我们可以使用extjs的路由(routes),下面来介绍一下如何使用简单路由和使用路由来传递参数. 1.简单的路由: 首先我们使用下面代码来发送路由 t ...

  7. Android Okhttp3的使用(很全面,包含Post提交字符串、键值对、表单、上传文件、无参请求和Get有参无参请求,还有自动添加token)

    Okhttp简介 okhttp是现代化应用程序的网络通信的方式.它用来帮助程序交换数据和媒体信息,使用okhttp可以让你的程序加载物料(翻译为服务器数据更合适在)更加高效.更节省网络带宽. okht ...

  8. Java有参构造和无参构造

    ⭕️前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家(点击跳转到网站)⭕️ 类与对象的创建 图片左侧代码 package oop.demo02; //学生类(一个类里面 ...

  9. java面向对象封装之有参无返与有参有返

    public class A{public static void main(String []args){B b=new B();b.show(99);String a=b.show1(90,100 ...

最新文章

  1. 外网如何访问 Service?- 每天5分钟玩转 Docker 容器技术(139)
  2. eclipse恢复界面默认设置
  3. oauth2和jwt_使用具有OAuth2的Web应用程序和JWT的使用来调用API – WSO2 API Manager
  4. linux yum仓库制作,yum仓库搭建之RPM包制作
  5. java中return提醒不兼容的_JAVA报return为不兼容类型
  6. gRPC接口性能测试
  7. 图像坐标球面投影_一种将球面图像投影至平面图像的方法与流程
  8. OpenCV 对比度增强
  9. JavaExcel模板下载(多sheet)
  10. vrchat新手教程_VRChat简易教程2-创建一个最基本的世界(world)
  11. AltiumDesigner下载安装
  12. github上传文件出错
  13. python 因子分析_因子分析在python上的实现
  14. LCD12864液晶显示屏工作原理是什么呢?
  15. hadoop机架感知原理
  16. 每日新闻丨刘强东卸任京东云计算经理职务;百度智能小程序月活用户突破3亿...
  17. HC32F460 实现模拟U盘导入python脚本在19264点阵屏上绘图--U盘模式
  18. win10怎么用记事本打开html文件,给win10系统右键菜单添加“用记事本打开”的方法...
  19. 使用Cheat Enginee(CE)找到“植物大战僵尸”阳光值的内存基址
  20. cad高程点怎么抽稀_cad如何提取高程点?如何在CAD地形图纸中提取高程点文件

热门文章

  1. 经常玩电脑正确的坐姿_电脑族玩游戏正确坐姿 7要点坐不伤身
  2. 数字后端基本概念介绍Relative Floorplan
  3. [论文解读]Explaining Knowledge Distillation by Quantifying the Knowledge
  4. 教你如何用手机下载视频号[微信小程序]中的视频
  5. BUUCTF:zip
  6. SQL编写:表A{id, name},表B{id, course, score}。求每名学生的 id 和 name 和平均成绩
  7. “燕云十六将”之毛毛杜倩(7)
  8. 目标检测 IoU、GloU、DloU、CloU详解
  9. 网络安全乱流,超级保护才是根本
  10. Lightgbm源论文解析:LightGBM: A Highly Efficient Gradient Boosting Decision Tree