Java 2019-7-4 定义一个Dog类,使用封装在main中调用传参
假设现在有一群狗,他们都有名字、年龄、主人三个属性。通过创建对象来访问他们的私有属性。
Dog.java
package com.hxzy.day;
public class Dog {
private String name;
private int age;
private String master;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getMaster() {
return master;
}
public Dog() {
}
public Dog(String name, int age, String master) {
this.name = name;
this.age = age;
this.master = master;
}
public void setMaster(String master) {
this.master = master;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
在idea里写Get、Set和有无参数构造方法都可以利用开发工具自动生成,提高开发效率。在工具类中——generate-geter and seter(生成get/set方法)/constructor(构造方法)
Dome.java
package com.hxzy.day;
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) {
List<Dog> list=new ArrayList<Dog>();
Dog dog1=new Dog("小黑",12,"熊大");
Dog dog2=new Dog("小白",8,"熊二");
Dog dog3=new Dog("黑喵",7,"光头强");
list.add(dog1);
list.add(dog2);
list.add(dog3);
System.out.println("一共有"+list.size()+"只狗");
System.out.println("他们分别是:\n名字\t年龄\t主人");
for (int i = 0; i <list.size() ; i++) {
Dog dog=list.get(i);
System.out.println(dog.getName()+"\t"+dog.getAge()+"\t"+dog.getMaster());
}
}
}
定义一个List数组 ,List list=new ArrayList()是因为List是抽象类不能被实例化(通过new创建实例化对象)所以只能从它的子类ArrayList下手,将dog对象保存在数组中(传参时也可以将对象作为参数传递),之后就是通过保存在数组里的对象调用get方法访问私有属性。
那么,如果在后面修改属性值会怎么样
可以看到第一只狗的名字改了大白。