1.定义一个Person类
属性:, , , ,所有的变量必须为私有(private)。
无参构造函数:, 功能:打印This is constructor 。
有参构造函数: ,功能:给属性赋值。
建议:使用Eclipse自动生成toString方法
2.定义类的初始化块
为Person类加入初始化块,在初始化块中对属性赋值,并且要保证每次的值比上次创建的对象的值。然后在下一行打印 其中是id的值。
提示:可为类定义一个属性来记录所创建的对象个数。
3.编写静态初始化块
打印
4.编写main方法
- 首先输入n,代表要创建的对象数量。
- 然后从控制台分别读取n行的, 并调用有参构造函数新建对象 。
- 将创建好的n个对象逆序输出(即输出方法)。
- 使用无参构造函数新建一个Person对象,然后直接打印该对象。
思考
初始化类与对象有几种方法,构造函数、初始化块、静态初始化块。这三种方法执行的先后顺序是什么?各执行几次。
输入样例:
输出样例:
代码:
import java.util.Scanner;
class Person{
private String name;
private boolean gender;
private int age;
private int id;
private static int objectcount = 0;
{
this.id=objectcount;
System.out.println("This is initialization block, id is "+id);
objectcount++;
}
static{
System.out.println("This is static initialization block");
}

Person(){
System.out.println("This is constructor");
System.out.println(name+","+age+","+gender+","+id);
System.out.println(toString());
}
Person(String name,int age,boolean gender){
this.name=name;
this.age=age;
this.gender=gender;
}
@Override
public String toString(){
return "Person [name=" + name + ", age=" + age + ", gender=" + gender + ", id=" + id + "]";
}
}
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] arr = new String[n];
for(int i=0;i<n;i++){
String name = sc.next();
int age = Integer.valueOf(sc.next());补基础java c
boolean gender = Boolean.valueOf(sc.next());
Person p = new Person(name,age,gender);
arr[i] = p.toString();
}
for(int i=arr.length;i>0;i--) {
System.out.println(arr[i-1]);
}
new Person();
sc.close();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/6044.html