面向对象
Java 的核心思想就是OOP(面向对象变成)
属性+方法 = 类
面向过程思想:步骤清晰简单,1-->2-->3...... 适合一些较为简单的问题
面向对象思想:物以类聚,分类的思维,将相同的方法放置一起构建成类,面对复杂问题分类解决;
面向对象偏向宏观,面向过程偏向具体;开发过程中两者是一起使用;
以类的方式组织代码,以对象的组织(封装)数据;
对象:具体的事物;类:抽象的概念
方法的调用
静态方法:static ,静态方法可 类名.方法 直接调用
非静态方法: 类名 对象名 = new 类名(); 实例化对象,再通过对象调用方法
static 是与类一同加载,当类存在时static 方法就已一同加载
非static 是与对象一同加载,当类被实例化对象才会被加载
所以static 和 非static 间无法互相调用
值传递:方法中接入的形参,仅在方法执行时生效,不会改变方法外的值
引用传递: 即传递中为对象,若方法中修改对象内的值,则对象中的值会改变
一个项目应该只存在一个main 方法
this 表示当前类,即this.name 表示当前类中的name 属性
面向对象变成本质:以类的方式组织代码,以对象的组织(封装)数据
构造器详解
一个类即使什么都不写,其也会存在一个方法(构造方法)
构造方法 :必须与类名字相同、必须没有返回类型(不可为void)
构造器: 相当于一个创建对象时默认会执行的方法,与类名相同,new 本质就是在调用构造方法
public class Person{String name;// 定义无参构造器public Person(){this.name="默认";}// 定义有参构造器// 当存在有参构造器时,无参构造器必须存在// alt + insert 快捷键,快速创建构造器public Person(String name){this.name=name}
}
创建对象内存分析
类是一个模板,new 对象 是在堆中占用了一个地址
栈:存储变量名,方法等(之间是堆叠关系),当最底层的main 方法消息,则会全部消失
堆: 存储实际的值(内存地址)

简单小结
-
类与对象
类是一个模板:抽象。对象是一个具体的实例
-
方法
定义、调用
-
对应的引用
引用类型 : 基本类型(8)
对象是通过引用来操作: 栈 ---> 堆
-
属性 : 字段Field 成员变量
默认初始化: 数字: 0 0.0
char : u0000 boolean : false
引用 : null
-
对象的创建和使用
必须 使用new 关键字创建对象,构造器 Person kuangshen = new Person();
对象的属性 kuangshen.name
对象的方法 kuangshen.sleep()
-
类
静态的属性 属性
动态的行为 方法
-
封装详解
高内聚,低耦合(该露的露,该藏的藏)
属性私有,get/set
private: 私有/封装,大多针对属性,很少对方法进行封装
封装(数据的隐藏):禁止直接对一个对象中数据的实际表示,通过接口来访问也就是提供的public 类
1. 提高程序的安全性,保护数据2. 隐藏代码的实现细节3. 统一接口4. 系统可维护增加了
private String name; // 属性私有
// 提供一些public 的get、set 方法
// 虽然无法直接获取私有属性,但可通过get 方法获取
public String getName(){return this.name;
}
// 虽然无法设置私有属性,但可通过set 方法设置
public String setName(String name){this.name = name
}