面向对象的第一天
面向对象和面向过程的区别
▶弄个例子解释一下:人把大象装进冰箱里.
用面向过程完成:[强调怎么做]
①把冰箱门打开
②把大象抬起,塞进冰箱
③把冰箱门关上
用面向对象完成:[强调谁来做]
人{
打开(冰箱){
冰箱.开开();
}
抬起(大象){
大象.进入(冰箱);
}
关闭(冰箱){
冰箱.闭合();
}
}
冰箱{
开开();
闭合();
}
大象{
进入(冰箱){
}
}
上面只是定义完了类,最后我们找到小明,奥马牌冰箱和非洲象这些真实的对象调用上面这些类中的的功能完成操作则这个过程就算完成了.
类和对象的使用
设计类就是设计类的成员:
成员包括:属性(成员变量)和方法
package lei;
public class PersonTest {
public static void main(String[] args)
{
//创建Person类的对象
Person p1 = new Person();
//调用对象的结构属性方法
//调用属性:对象.属性
p1.name = "小明";
p1.age = 20;
//调用方法:对象.方法
p1.eat();
p1.talk("汉");
}
}
class Person
{
//属性
String name;
int age;
boolean isMale;
//方法
public void eat()
{
System.out.println("人可以吃饭");
}
public void talk(String language)
{
System.out.println("人可以说"+language+"语");
}
}
▣如果创建一个类的多个对象,则每个对象都独立拥有一套类的属性.(非static的)
▣new 一个对象,在内存里才分配空间,如p2;
而如果像p3 Person p3=p1,这里是把p1变量保存的对象地址值赋给p3,导致p1和p3指向了堆空间中同一个对象实体.如果对p3属性值进行修改,则p1对应属性也会变化.
对象的内存解析
拿上面代码举例