Day5 java面向对象的学习
Day5
回顾方法
static 静态方法
不加static 非静态方法
static是和类一起加载的
类与对象的创建
类是一种抽象的数据类型,是对某一事物整体的描述
对象是抽象概念的具体事例
一个项目应该只存在一个main方法
使用new创建对象时,除了分配空间,还会初始化。
和C++的类似,不过大多的印象还是当初写springboot项目的,通过需求得到要几个类,先写类,再写mybatis的鱼数据库连接的层,最后写服务端和controller端
比较好理解。到后面还会看到
构造器
这个是重点
一个类如果什么也不写,也会存在一个构造器
看着像是给一个类初始化,它的特点是必须与类的名字相同,必须没有返回值,连void都没有。
先运行完构造器的方法后,才生成了这个对象。
作用
-
使用new关键字,必须要有构造器本身也是在调用构造器。
-
可以实例化一些对象,即可以初始化。
一旦定义有参构造,无参构造就必须要显明定义
如果对象有参数,会先用有参构造,没有才是无参构造
通过这个倒是学了IDEA的一个快捷键,alt+insert,这个可以直接生成构造器,看了一下还能直接生成get和set方法,十分方便。
创建对象的内存分析
首先 类是在方法区的 常量池在方法区
main方法是在栈里的最底下,先进后出。 对象在栈里是引用,真正的对象在堆里。
有点混乱,栈 ,堆
堆里面有一个特殊的区域叫方法区。
对象是通过引用来操作的 栈->堆(地址)
概念理解的差不多,但内存这一个知识倒是不大清晰,再回顾
封装
高内聚,低耦合 细节自己完成不让外部接触,只给外部一下能调用的方法 确实是封装的思想
在学校的java课也有讲到,比较清晰。
属性私有,然后给一下方法调用,get /set alt+insert能快捷生成get和set,在写项目常常用到。
继承
就是对一些类的抽象
子类是父类的扩展,就是在有父类的基础上还有自己独有的属性
extends 扩展
public class Application extends Student()
继承是类与类之间的关系,除此之外,类与类之间的关系还有组合,依赖,聚合。
java类只有单继承没有多继承。 一个儿子只能有一个爸爸, 爸爸可以有多个儿子
但子类无法继承父类的私有的东西,如果想用,就要写方法调用。
四个修饰符 private public protected default (私有,公开,受保护,默认)
一般规定父类属性是私有,方法是公有
object类
在java中,所有的类都默认直接或者间接继承object类,所以即使没有在类里写属性和方法,他也有object类的方法可以调用。
native 关键词 指本地的
思考
今天主要学的是面向对象编程,三大特性 封装 继承 多态,多态要明天学习了,主要是学习的思维,我大概是在学校的java课有了解过,现在再回看,还是比较清晰的,今天唯一的难点就是内存,这个了解确实较少,看来就算不考研,还得重拾一下四大件,不能忘了,现在就好多知识以及快忘的差不多了,要学点理论上的知识。