##构造方法---无参构造方法 构造方法也称构造函数、构造器。 构造方法不能够被对象单独调用。 ###构造方法 1.当没有构造方法 系统会自动添加无参的构造方法 2.当有创建构造方法 无论有参无参 系统都不会再添加构造方法 3.一个类中可有多个构造方法 4.构造方法名与类名一定相同且没有返回值 5.构造方法使用 只能在对象实例化(new 了之后)时调用 6.与普通方法不同 只能通过new调用 不能通过对象调用 构造方法的语句格式 ```java public 构造方法名(){ //初始化代码 } ``` ###构造方法---带参构造方法 ```java package com.imooc.animal; /** - 宠物猫类 - @author HeFeihong * */ public class Cat { //成员属性:昵称、年龄、体重、品种 String name;//昵称 int month;//年龄 double weight;//体重 String species;//品种 public Cat() { } public Cat(String name) { System.out.println("我是带参构造方法"); } public Cat(String newName,int newMonth,double newWeight,String newSpecies) { name=newName; month=newMonth; weight=newWeight; species=newSpecies; } //成员方法:跑动、吃东西 //跑动的方法 public void run() { System.out.println("小猫快跑"); } //吃东西的方法 public void eat() { System.out.println("小猫吃鱼"); } } ``` ```java package com.imooc.animal; public class CatTest { public static void main(String[] args) { //对象实例化 Cat one=new Cat("花花",2,1000,"英国短毛猫"); //测试 one.eat(); one.run(); // one.name="花花"; // one.month=2; // one.weight=1000; // one.species="英国短毛猫"; System.out.println("昵称:"+one.name); System.out.println("年龄:"+one.month); System.out.println("体重:"+one.weight); System.out.println("品种:"+one.species); } } ``` 就近:把传入的参数复制给了局部变量 全局变量没有改变 就近原则 赋值时,在你全局变量和局部变量名相同时,执行顺序会优先调用你局部变量。 结局方式 1. 修改输入参数的参数名 2. 使用this this 关键字表示当前对象 上面的例子name=newName可改为this.name ###编程练习: 编写自定义猴子类,按照效果图,在编辑器中对应空白区域编写代码。 程序参考运行效果图如下: ```java 我是使用无参构造产生的猴子: 名称:长尾猴 特征:尾巴长 ============================ 我是使用带参构造产生的猴子: 名称:白头叶猴 名称:头上有白毛,喜欢吃树叶 ``` 任务 1、创建Monkey类 属性:名称(name)和特征(feature) 方法: 1) 无参构造方法(默认初始化 name 和 feature 的属性值,属性值参考效果图) 2) 带参构造方法,接收外部传入的参数,分别向 name 和 feature 赋值 2、创建测试类 分别通过无参构造方法和带参构造方法,完成对象实例化实例化对象,并打印输出对象信息,输出格式如效果图。 ```java public class Monkey { //属性:姓名(name)、特征(feature) String name; String feature; //无参的构造方法(默认初始化name和feature的属性值,属性值参考效果图) public Monkey(){ } public Monkey(String name,String feature){ this.name=name; this.feature=feature; } //带参的构造方法(接收外部传入的参数,分别向 name 和 feature 赋值) } ``` ```java public class Test { public static void main(String[] args) { Monkey one=new Monkey(); one.name="长尾猴"; one.feature="尾巴长"; //调用无参构造方法实例对象 System.out.println("我是使用无参构造产生的猴子:"); System.out.println("名称:"+one.name); System.out.println("特征:"+one.feature); System.out.println("============================"); //打印输出对象属性 Monkey two=new Monkey("白头叶猴","头上有白毛,喜欢吃树叶"); //调用带参构造方法实例对象 System.out.println("我是使用带参构造产生的猴子:"); System.out.println("名称:"+two.name); System.out.println("名称:"+two.feature); //打印输出对象属性 } } ``` Loading... ##构造方法---无参构造方法 构造方法也称构造函数、构造器。 构造方法不能够被对象单独调用。 ###构造方法 1.当没有构造方法 系统会自动添加无参的构造方法 2.当有创建构造方法 无论有参无参 系统都不会再添加构造方法 3.一个类中可有多个构造方法 4.构造方法名与类名一定相同且没有返回值 5.构造方法使用 只能在对象实例化(new 了之后)时调用 6.与普通方法不同 只能通过new调用 不能通过对象调用 构造方法的语句格式 ```java public 构造方法名(){ //初始化代码 } ``` ###构造方法---带参构造方法 ```java package com.imooc.animal; /** - 宠物猫类 - @author HeFeihong * */ public class Cat { //成员属性:昵称、年龄、体重、品种 String name;//昵称 int month;//年龄 double weight;//体重 String species;//品种 public Cat() { } public Cat(String name) { System.out.println("我是带参构造方法"); } public Cat(String newName,int newMonth,double newWeight,String newSpecies) { name=newName; month=newMonth; weight=newWeight; species=newSpecies; } //成员方法:跑动、吃东西 //跑动的方法 public void run() { System.out.println("小猫快跑"); } //吃东西的方法 public void eat() { System.out.println("小猫吃鱼"); } } ``` ```java package com.imooc.animal; public class CatTest { public static void main(String[] args) { //对象实例化 Cat one=new Cat("花花",2,1000,"英国短毛猫"); //测试 one.eat(); one.run(); // one.name="花花"; // one.month=2; // one.weight=1000; // one.species="英国短毛猫"; System.out.println("昵称:"+one.name); System.out.println("年龄:"+one.month); System.out.println("体重:"+one.weight); System.out.println("品种:"+one.species); } } ``` 就近:把传入的参数复制给了局部变量 全局变量没有改变 就近原则 赋值时,在你全局变量和局部变量名相同时,执行顺序会优先调用你局部变量。 结局方式 1. 修改输入参数的参数名 2. 使用this this 关键字表示当前对象 上面的例子name=newName可改为this.name ###编程练习: 编写自定义猴子类,按照效果图,在编辑器中对应空白区域编写代码。 程序参考运行效果图如下: ```java 我是使用无参构造产生的猴子: 名称:长尾猴 特征:尾巴长 ============================ 我是使用带参构造产生的猴子: 名称:白头叶猴 名称:头上有白毛,喜欢吃树叶 ``` 任务 1、创建Monkey类 属性:名称(name)和特征(feature) 方法: 1) 无参构造方法(默认初始化 name 和 feature 的属性值,属性值参考效果图) 2) 带参构造方法,接收外部传入的参数,分别向 name 和 feature 赋值 2、创建测试类 分别通过无参构造方法和带参构造方法,完成对象实例化实例化对象,并打印输出对象信息,输出格式如效果图。 ```java public class Monkey { //属性:姓名(name)、特征(feature) String name; String feature; //无参的构造方法(默认初始化name和feature的属性值,属性值参考效果图) public Monkey(){ } public Monkey(String name,String feature){ this.name=name; this.feature=feature; } //带参的构造方法(接收外部传入的参数,分别向 name 和 feature 赋值) } ``` ```java public class Test { public static void main(String[] args) { Monkey one=new Monkey(); one.name="长尾猴"; one.feature="尾巴长"; //调用无参构造方法实例对象 System.out.println("我是使用无参构造产生的猴子:"); System.out.println("名称:"+one.name); System.out.println("特征:"+one.feature); System.out.println("============================"); //打印输出对象属性 Monkey two=new Monkey("白头叶猴","头上有白毛,喜欢吃树叶"); //调用带参构造方法实例对象 System.out.println("我是使用带参构造产生的猴子:"); System.out.println("名称:"+two.name); System.out.println("名称:"+two.feature); //打印输出对象属性 } } ``` 最后修改:2019 年 12 月 31 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏
1 条评论
good job bro