人之所以痛苦,那是因为你在成长。--------magic_guo
构造器与封装:
代码:
Person类:
/*
* 面向对象的思想:以类的形式组织代码,以对象的形式封装数据。
* 构造器:
* 1.创建对象
* 2.初始化对象
* 如果没有定义构造器,则系统默认有一个无参构造器,如果显式的定义了有参构造器,则系统不再提供无参构造器,需要自己定义无参构造器;
* 在有一个类中,多个构造器形成构造器的重载。
* 封装:
* 将属性封装成私有化,只有在本类中或本类的方法中才能使用,外部想要使用,通过set/get方法来访问;可以在set方法中,限定非法的设 * 定值,以防止用户随便输入;
*
* */
public class Person {
// 属性
int age;
String name;
private int weight;
// calculator
// 无参构造器
public Person(){
System.out.println("无参构造器生成了一个对象!");
}
// 有参构造器
public Person(int a){
age = a;
System.out.println("有参构造器生成一个对象!年龄为:" + age);
}
// 有参构造器
public Person(int a, String n){
age = a;
name = n;
System.out.println("有参构造器生成一个对象!年龄为:" + age + ", 名字为:" + name);
}
// get/set
public void setWeight(int w){
weight = w;
}
public int getWeight(){
return weight;
}
}
PersonTest类:
public class PersonTest {
public static void main(String[] args) {
// 调用无参构造器
Person p1 = new Person();
// 调用有参构造器
Person p2 = new Person(18);
// 调用有参构造器
Person p3 = new Person(18, "Tom");
// p3调用weight的set方法,设置p3的体重
p3.setWeight(100);
// p3调用weight的get方法,输出p3的体重
System.out.println(p3.getWeight());
}
}
结果:
无参构造器生成了一个对象!
有参构造器生成一个对象!年龄为:18
有参构造器生成一个对象!年龄为:18, 名字为:Tom
100