目录
在构造器内完成对象属性的初始化
- public class This01{
- //编写一个main方法
- public static void main(String[] args){
- Dog d1 = new Dog("大壮", 3);
- d1.info();
- }
- }
-
- class Dog{//类
-
- String name;
- int age;
- public Dog(String dName, int dAge){//构造器
- name = dName;
- age = dAge;
- }
-
- public void info(){//成员方法,输出属性信息
- System.out.println(name + "\t" + age + "\t");
- }
-
- }
运行结果

如果构造器的形参能够直接写成属性名
即String name, int age
- public class This01{
- //编写一个main方法
- public static void main(String[] args){
- Dog d1 = new Dog("大壮", 3);
- d1.info();
- }
- }
-
- class Dog{//类
-
- String name;
- int age;
-
- public Dog(String name, int age){//构造器
- name = name;//null
- age = age;//0
- }
-
- public void info(){//成员方法,输出属性信息
- System.out.println(name + "\t" + age + "\t");
- }
-
- }
编译结果

原因分析:变量的作用域原则
构造器里的name和age变成了局部变量(其作用域只存在于这个构造器内),而不是属性
但是方法