对象和封装
构造方法
定义:与类同名,没有返回值类型
new 用来调用构造方法 (换句话实例化对象的时候调用构造方法)
构造方法允许重载
封装的概述
封装:private私有化成员属性,提供公开public的getter/setter
Getter:取值 Setter:赋值
案例
public class Pet {
/**
* 昵称
*/
private String nickName;
/**
* 年龄
*/
private int age;
/**
* 毛发颜色
*/
private String color;
/**
* 品种
*/
private String brand;
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if(age>0 && age<20){
this.age = age;
}else{
System.out.println("输入年龄不合法");
}
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
/**
* 构造方法
*/
public Pet(String nickName,String brand){
setNickName(nickName);
setBrand(brand);
}
/**
* 构造方法重载
* @param nickName
* @param age
* @param color
* @param brand
*/
public Pet(String nickName, int age, String color, String brand) {
setNickName(nickName);
setAge(age);
setColor(color);
setBrand(brand);
}
/**
* 发出声音
*/
public void shut(){
System.out.println(nickName+"在叫唤....");
}
public void printInfo(){
System.out.println(nickName+","+age+","+color+","+brand);
}
public void printInfo(String msg){
System.out.println(msg);
}
}
public class TestPet {
public static void main(String[] args) {
//创建对象
//new 调用构造方法,实例化对象
//编译器通过参数列表区分所调用构造方法
Pet p1 = new Pet("喵喵",300000000,"白色","波斯");
Pet p2=new Pet("豆豆","金毛");
System.out.println(p1.getAge());//取值
p1.setAge(78);//赋值
//给属性赋值
// p1.nickName="旺旺";
// p1.age=3;
// p1.color="金色";
// p1.brand="金毛";
//调用方法
p1.shut();
p1.printInfo();
p1.printInfo("Hello World");
}
}