什么是对象
对象:把数据及对数据的操作方法放在一起,作为一个相互依存的整体。
对象即为人对各种具体物体抽象后的一个概念,人们每天都要接触各种各样的对象,电脑就是一个对象。
什么是面向对象
面向对象并不是一门技术,而是一种编程的指导思想
简单来说面向对象的开发,就是程序员把问题分成逐步分解成一个一个的步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。
类与对象的区别
类
类是一个模板,它描述一类对象的行为和状态。
对象
对象是类的一个实例,有状态和行为。例如,一部手机是一个对象,它的属性有:品牌、价格、颜色;行为有:打电话、发短信等。
对象内存图
成员变量在堆内存,局部变量在栈内存
两个引用指向相同的数据,会指向同一内存地址,修改其中一个变量,修改的为该变量在内存地址下的内容。 所以两个变量输出结果相同。
成员变量和局部变量的区别
this关键字
this的作用
1. this可以使用点的形式调用本类的成员
2. this.本类成员变量
3. this.本类成员方法
this代表当前类对象的地址,哪一个对象调用的方法,方法中的this代表的就是哪一个对象
采用 this 关键字是为了解决实例变量和局部变量之间发生的同名的冲突。
封装
把对象的属性和行为看成一个密不可分的整体,将这两者“封装”在一个不可分割的独立单元(即对象)中;另一层含义指“信息隐藏”,把不需要让外界知道的信息隐藏起来,尽可能隐藏对象的功能实现细节,仅对外暴露公共的访问方式。
核心思想
绝不能让其他类直接访问实例字段,程序只能通过对象的方法与对象进行数据交互。
封装的优点
- 良好的封装能够减少耦合,符合程序设计追求的“高内聚,低耦合”;
- 类内部的结构可以自由修改;
- 可以对成员变量进行更精确的控制;
- 隐藏信息实现细节;
- 可以提高代码的安全性,例如普通的类属性不是private修饰就直接可以通过“对象名.属性 = xxx”对其赋值,但当我们用private修饰该属性后就不能这样对其做任意的修改了
权限修饰符
- private,在本类中可见
- (defalut),在同一个包中可见
- protected,在子类中可见
- public,在任何情况都可见
JavaBean
标准JavaBean
-
成员变量
使用private修饰 -
构造方法
提供一个无参构造方法
提供一个带参构造方法 -
成员方法
提供每一个成员变量对应的setXxx() / getXxx()
public class Phone {
private String brand;
private int price;
private String color;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public Phone() {
}
public Phone(String brand, int price, String color) {
this.brand = brand;
this.price = price;
this.color = color;
}
}