* 一、Java面向对象的三条主线
* 1、Java类及类的成员:属性、方法、构造器;代码块、内部类
* 2、面向对象的三大特征:封装性、继承性、多态性、(抽象性)
* 3、其他关键字:this\super\final\abstract\interface\package\import
*大处着眼,小处着手
*二、”人把大象装进冰箱“
*1、面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做
* ①把冰箱门打开
* ②拾起大象,塞进冰箱
* ③把冰箱门关闭
*2、面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做
* 几个实体,设几个类
* 人{
* 打开(冰箱){
* 冰箱.开开);
* }
* 抬起(大象){
* 大象.进入(冰箱);
* }
* 关闭(冰箱){
* 冰箱.闭合();
* }
* }
* 冰箱{
* 开开(){}
* 闭合(){}
* }
* 大象{
* 进入(冰箱){
* }
* }
三、两个要素:
* 类:对一类事物的描述,抽象,概念上的定义
对象:实际存在的该类事物的每个个体,也称实例
面向对象的重点是设计类、
设计类,也就是设计类的成员
********************************************************
四、类和对象的使用(面向对象思想落地的实现):
1、创建类,设计类的成员
2、创建类的对象
3、通过“对象.属性” 或 “对象.方法”调用对象的结构
*若创建了一个类的多个对象,则每个对象都独立拥有一套类的属性
* 意味着修改一个类的属性,不影响另外一个类的属性
五、对象的内存解析
* 堆存放对象实例、 虚拟机栈存储局部变量、
* 方法区存储被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据
*
*/
package com.xuexi.contact;
//测试类
public class OPPTest {
public static void main(String[] args) {
//2、创建Person类的对象 = 类的实例化 = 实例化类
Person p1 = new Person();
//Scanner scanner = new Scanner(System.in);
//3、调用对象的结构:属性、方法
//调用属性:“对象、属性”
p1.name = "tom";
p1.isMale = true;
System.out.println(p1.name);
//调用方法
p1.eat();
p1.sleep();
p1.talk("Chinese");
//**************************************
Person p2 = new Person();
//p2没有赋值
System.out.println(p2.name); //null
System.out.println(p2.isMale); //false
//********************************
Person p3 = p1;//将p1变量的地址值赋给p3,两者指向同一堆空间
p3.name = "jerry";// 导致修改P3则将同时修改P1
System.out.println(p1.name); //jerry
}
}
//1、创建类,设计类的成员
class Person{
//属性 = 成员变量 = field =域、字段
String name;
int age = 1;
boolean isMale;
//方法 = 成员方法 = 函数 = Method
public void eat() {
System.out.println("人可以吃饭");
}
public void sleep() {
System.out.println("人可以睡觉");
}
public void talk(String language) {
System.out.println("人可以讲话,使用的是:" + language);
}
}