面向对象设计三个主要特征:
⒈封装性:内部的操作对外部而言不可见
⒉继承性:在已有结构的基础上继续进行功能的扩充
⒊多态性:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果
面向对象的程序开发中三个步骤:
⒈OOA:面向对象分析
⒉OOD:面向对象设计
⒊OOP:面向对象开发
类与对象简介:类是对某一类事物的共性的抽象概念,对象描述的是一个具体的产物。类可以理解成一个模版,而对象就是按模板做出来的某个具体产物。
在类中一般会有两个组成:
⒈成员属性(Field):对象拥有的特征
⒉操作方法(Method):对象具有的行为
调用类中属性和方法:
调用类中的属性:实例化对象.成员属性名;
调用类中和方法:实例化对象.方法名称();
对象的内存分析:
⒈堆内存:保存的是对象的具体信息,在程序中堆内存空间的开辟是通过new完成的
⒉栈内存:保存的是一块堆内存的地址,通过地址找到堆内存,然后找到对象内容
引用分析:
类本身属于引用类型,同一堆内存可以被不同的栈内存所引用,指向同一堆内存的不同栈内存之间叫引用传递;
垃圾空间:没有任何栈内存所指向的堆内存空间,垃圾由GC处理器定期处理回收;垃圾处理对性能有影响,所以在程序开发过程中,垃圾产生越少越好。
code:
class Person { String name;//姓名 int age;//年龄 public void tell()//方法 { System.out.println("姓名:"+name+",年龄:"+age); } } public class ClassDefine { public static void main(String[] args) { Person p=new Person(); //Person p= null; //p = new Person(); p.name="张三"; p.age=19; p.tell(); change(p);//引用传递;Person temp = p; p.tell(); p1.age=30; Person p2=new Person(); p2.name="李四"; p2.age=16; p2=p1;//引用传递,p2所引用的堆内存无栈内存引用(p2原来的堆空间变成垃圾空间),p2指向p1堆内存 p2.tell(); } public static void change(Person temp) { temp.age=24; //执行完成后,断开temp对堆内存的引用 } }
执行效果: