java面向对象编程
1.面向过程(POP)与面向对象(OOP)的区别
面向对象:Object Oriented Programming
面向过程:Procedure Oriented Programming
二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如抽象、分类、继承、聚合、多态等。
2.面向对象的三大特征:封装、继承、多态
举例:
3.类与对象
类(Class)和对象(Object)是面向对象的核心概念。
类是对一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称为实例(instance)。
4.对象的内存解析
实例代码:
package start; class PersonTest{ // 属性/成员变量 String name; int age; boolean isMale; // 成员方法 public void shout() { System.out.println("my name is" + name); } } public class Person { public static void main(String[] args) { PersonTest p1 = new PersonTest(); // 输出p1对象默认的值,和一位数组默认的值是一样的 System.out.println("输出p1对象默认的值:"); System.out.println(p1.name); System.out.println(p1.age); System.out.println(p1.isMale); // 对象初始化 p1.name = "victor"; p1.age = 10; p1.isMale = true; // 新建两个对象,其中p2是p1的引用,两者共用一个地址,p3是新建的一个地址 PersonTest p2 = p1; PersonTest p3 = new PersonTest(); p3.name = "boy"; p3.age = 5; p3.isMale = false; // 改变p1的年龄,输出p2和p3的年龄,则p2的年龄和p1同步改变,p3的不变 p1.age = 1; System.out.println("p1.age =" + p1.age); System.out.println("p2.age =" + p2.age); System.out.println("p3.age =" + p3.age); } }
编译结果:
5.类的变量:成员变量与局部变量
两者的区别: