OOP面向对象思想
面向对象
面向对象编程(Object-Oriented Programming,OOP)
本质:以类的方式组织代码,以对象的组织(封装)数据
核心思想:
- 抽象
- 三大特性:1. 封装 2.继承 3.多态
方法
方法定义的回顾
/*
修饰符 返回值类型 方法名(...){
//方法体
return 返回值;//在return里面代表方法结束了, 结束方法,返回一个结果!结果可能为空,可能为任意一种类型
}
*/
方法调用的回顾
- 静态方法:static
- 其余为非静态方法
静态方法调用可直接通过类名调用
格式:类名.方法名
public class Demo{
public static void main(String[] args){
Student.say();
}
}
public class Student{
public static void say(){
System.out.println("巴啦啦");
}
}
非静态方法的调用
public class Demo{
public static void main(String[] args){
//实例化这个类
//对象类型 对象名 = 对象值
Student student = new Student();
student.say();
//new Student().say(); 同上一样可以调用
}
}
方法调用之形参实参
public class Demo{
public static void main(String[] args){
Demo.add(1,2) //实参
//实际参数和形式参数的类型要对应
System.out.println(add);
}
//形参
public static int add(int a,int b) {
return a+b;
}
}
方法调用之值传递和引用传递
//值传递
public class Demo{
public static void main(String[] args){
int a =1;
System.out.println(a); //输出1 定义a等于1
Demo.change(a);//把实参传给a
System.out.println(a);//输出1
}
//返回值为空
public static void change(int a) {//形参 把1传过来接着走a=10 然后当前a=10 没有返回值 回到上面sout a还是等于1
a=10;
}
//引用传递(一般是传递一个对象 本质还是值传递)
//一个类里面只能有一个 public class 但可以有多个class
public class Demo{
public static void main(String[] args){
Person person = new Person();//把person传递给change方法
System.out.println(person.name);//null
Demo.change(person);
System.out.println(person.name);//哆啦A梦
}
public static void change(Person person) {
//person是一个对象 指向的是---> Person person = new Person(); 这是一个具体的人 可以改变属性
person.name ="哆啦A梦";//改的是下面那个Person类的name
}
class Person{
String name;//默认值为null
}
}
类和对象
类是一种抽象的数据类型,它是对某一事物整体的描述/定义,但并不能代表某一个具体的事物
对象是抽象概念的具体实例
创建与初始化对象
使用new关键字创建对象
使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用。
类是抽象的 需要进行实例化。类实例化后会返回一个自己的对象
类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。
并且构造器有以下俩个特点:
- 必须和类的名字相同
- 必须没有返回类型,也不能写void
一个类即使什么都不写 也会存在一个方法(构造方法)
小插曲:方法中this.?=??? this. 代表当前类 ,而后面=的那个就是参数传进来的值
构造器作用
- 实例化初始值
- 使用new关键字必须要有构造器,本质是在调用构造器
- 一旦定义了有参构造,无参构造就必须显示定义,这样才可以使用无参new 对象 即定义了有参后,想要Student student = new Student();就必须有个无参的定义,无参构造器里面可以啥都不填
快捷键 alt+ insert 生成构造器
小结
- 类是一个模板,是抽象的;对象是一个具体的实例
- 方法的定义、调用
- 对应的引用
- 引用类型:除了 基本类型(8种)之外都可以成为引用类型
- 对象是通过引用来操作的:栈---->堆
- 属性:一般成为字段Field或成员变量
-
默认初始化:数字 0 0.0
char: u0000
boolean:false
引用:null
修饰符 属性类型 属性名 = 属性值 (java万能公式 赋值都是这么赋的)
- 对象的创建和使用
- 必须使用new关键字创造对象,必须要有构造器 Person fafa = new Person();
- 对象的属性 fafa.name
- 对象的方法 fafa.sleep();
- 类:
- 静态的属性 属性
- 动态的行为 方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?