欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

构造方法

程序员文章站 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
苹果

 

相关标签: 构造方法