面向对象(一)——类与对象
分类:
文章
•
2023-11-03 20:42:21
从这节课开始我们进入面向对象的世界
什么是面向对象?
面向对象是一种编程思想,在面向对象的语言中一切都是对象
面向对象三大特征:
封装: 对一系列属性和方法进行包装
继承: 子类可以继承父类的属性和方法,比如狗拥有动物的所有属性和特征
多态: 同一变量根据不同情况可以采用不同的方法
面向对象的基石是类与对象
类:
本质是数据类型
自定义的
拥有属性和方法
对象:
类类型的变量
储存在堆(内存的一个区,基本数据类型变量储存在栈中)中
可被引用变量(c语言里叫指针)引用
引用变量:
储存在栈中
可以引用堆中的对象(可以通过引用变量来访问对象的属性和方法)
Java里无法直接访问对象,只能通过引用变量间接访问
引用变量储存的值为对象的地址(jvm根据引用变量储存的地址去访问对象)
实例:
就是类类型的变量,实例等同于对象
属性:
也叫成员变量,定义在类里面的变量
属性可以被每一个类的对象所持有
不同对象不共用属性
方法:
也叫成员函数,或者简称函数
定义在类里面
对语句集合的封装
通过在方法内部写不同的语句可以实现不同的功能
类的定义:
class 类名{
//声明属性
修饰符 类型 属性名;
…
//声明方法
修饰符 返回值类型 方法名(类型 参数名, 类型 参数名, …)
{
//方法实现
}
…
}
修饰符:
用于表示属性或方法的作用域的关键字
作用域:
可以被直接访问的域
Demo
public class User {
//属性
public int id;
private int age;
//方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
创建对象:
类型名 变量名 = new 类型名();
如:
User user = new User();
解释:
new User()会创建一个User类型的对象储存在堆区,并返回该对象的地址
User user 表示声明一个User类型的引用变量,名字为user
User user = new User() 就是创建一个User对象并返回地址赋值给引用变量user
由此可见引用变量的值是对象的地址
通过引用变量访问属性:
user.id = 3;
通过引用变量访问方法:
user.setId(1);
this 关键字
this是一个引用,指向类本身,可以在类里通过this访问类的属性和方法