面向对象(一)
面向对象编程(oop)
属性+方法 = 类
- 对于描述复杂的事物,为从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,任然需要面向过程的思路去处理。
1.什么是面向对象
- 面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据。
- 抽象
- 三大特征:
- 封装
- 继承
- 多态
- 从认识论的角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象
- 从代码运行角度考虑,先有类后有对象。类是对象的模板。
2.回顾方法及加深
1.方法的定义
- 修饰符
- 返回类型
- break:跳出switch,结束循环 和 return 的区别
- 方法名: 注意规范 见名知意
- 参数列表:(参数类型,参数名)...
- 异常抛出:疑问,后面讲解
2.方法的调用
- 静态方法
- 非静态方法
非静态可以调用静态,静态不能调用非静态
- 形参和实参
- 值传递和引用传递
- this关键字
3.类与对象的关系
- 类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物
- 动物、植物、手机、电脑等
- Person类、Pet类、Car类等,这些都是用来描述/定义某一类具体的事物应该具备的特点和行为
- 对象是抽象概念的具体实例
- 张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例
- 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念
1.创建与初始化对象
- 使用new关键字创建对象
- 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用
- 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
- 1.必须和类的名字相同
- 2.必须没有返回类型,也不能写void
- 构造器必须掌握
package com.oop.dome02;
public class Person {
//一个类即使什么都不写,它也会存在一个方法
//显示的定义构造器
String name;
//1.使用new关键字,本质是在调用构造器
//2.用来初始化值
public Person(){
}
//有参构造:一旦定义了有参构造,无参就必须显示定义
public Person(String name){
this.name = name;
}
//alt+insert 快速插入构造器
}
/*
* public static void main(String[] args) {
//new 实例化了一个对象
Person person = new Person("yehuan");
System.out.println(person.name);
}
构造器:
* 1.和类名相同
* 2.没有返回值
作用:
* 1. new 本质在调用构造方法
* 2. 初始化对象的值
注意点:
* 1.定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造
*
* 快捷键:alt+insert
*
* this. 是当前类
* */
2.创建对象内存分析
3.类与对象小结
/*
* 1.类与对象
* 类是一个模板:抽象 ,对象是一个具体的实例
* 2.方法
* 定义、调用
* 3.对应的引用
* 引用类型:基本类型(8)
* 对象是通过引用来操作的:栈-->堆
* 4.属性:字段Field 成员变量
* 默认初始化:
* 数字: 0 0.0
* char:u0000
* boolean:false
* 引用:null
* 修饰符 属性类型 属性名 = 属性值
* 5.对象的创建和使用
* - 必须使用new 关键字创造对象,构造器 Person yehuan = new Person();
* - 对象的属性 yehuan.name
* - 对象的方法 yehuan.sleep()
* 6.类:
* 静态的属性 属性
* 动态的行为 方法
*
* 封装、继承、多态
* */
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端