构造方法
程序员文章站
2022-05-14 11:56:31
...
1.当没有构造方法时,系统会自动生成一个默认无参构造方法
2.当拥有构造方法后,系统不会生成一个默认无参构造
3.一般情况下,当我们设计类时应该为类显式的添加无参构造方法
public class Person{
//属性
String name;
String address;
int age;
//自我介绍
void introduce(){
System.out.println("我的名字叫" + name + ",今年" + age + "岁,来自" + address);
}
public static void main(String[]args){
Person p = new Person();
p.name = "张三";
p.address = " 北京";
p.age = 20;
p.introduce();
}
}
控制台输出结果
PS D:\geminno> javac Person.java
PS D:\geminno> java Person
我的名字叫张三,今年20岁,来自 北京
Java反编译javap查看是否生成自动生成构造方法
PS D:\geminno> javap Person
Compiled from "Person.java"
public class Person {
java.lang.String name;
java.lang.String address;
int age;
public Person();
void introduce();
public static void main(java.lang.String[]);
}
完善后代码
public class Person{
//属性
String name;
String address;
int age;
Person(){//无参构造
}
Person(String n , int a ,String addr){//有参构造
name = n;
age = a;
address = addr;
}
//自我介绍
void introduce(){
System.out.println("我的名字叫" + name + ",今年" + age + "岁,来自" + address);
}
public static void main(String[]args){
/*Person p = new Person();
p.name = "张三";
p.address = " 北京";
p.age = 20;
*/
Person p = new Person("张三" , 20 , "北京");
p.introduce();
}
}
控制台输出结果
PS D:\geminno> javac Person.java
PS D:\geminno> java Person
我的名字叫张三,今年20岁,来自北京
PS D:\geminno> javap Person
Compiled from "Person.java"
public class Person {
java.lang.String name;
java.lang.String address;
int age;
Person();
Person(java.lang.String, int, java.lang.String);
void introduce();
public static void main(java.lang.String[]);
}
作业:
在水果超市系统中有水果类,这个类拥有名称,单价,产地三个属性。请设计合理的构造方法,使得在实例化一个水果对象的同时给三个属性赋值
public class Fruit{
String name;
int price;
String address;
//无参构造
Fruit(){
}
//有参构造
Fruit( String n,int p,String add){
name = n;
price = p;
address = add;
}
//主方法
public static void main(String[]args){
Fruit f = new Fruit("苹果" ,8,"济南");
System.out.println(f.name);
}
}
控制台输出结果
PS D:\geminno> javac Fruit.java
PS D:\geminno> java Fruit
苹果