Java学习笔记4

目录

面向对象基础

面向对象是相对于面向过程来讲的,是把相关的数据和方法组织成一个整体来看待

面向对象到面向过程,是程序员思想上,从执行者到指挥者的转变

面向过程是死板的,难适应变化的,面向对象更加灵活,可复用性更高

三大思想

OOA:面向对象分析

OOD:面向对象设计
OOP:面向对象程序

三大特征

继承、封装、多态
封装性:所有内容对外部不可见
继承性:将其他的功能继承下来继续发展
多态性:方法的重载本身就是一个多态性的表现

类与对象的关系

两者的关系

类是一个共性的产物,是一个综合的特征
对象是一个个性的产物,是一个个体的特征
类必须通过对象才可以使用,对象的所有操作都在类中定义

类是引用数据类型

类由属性和方法构成

  1. 属性:相当于一个个**特征**
    
  2. 方法:相当于一个个**行为**
    

定义格式

1. 类

class 类名称{
成员属性---->变量
成员方法
}

类必须编写在.java文件中
一个.java文件可以存在N个类
但只能存在一个public修饰的类

.java文件的文件名称,必须和public修饰的类型完全一致

2. 方法的定义格式:

返回值类型 方法名称(形式参数列表){
方法体
return 返回值;
}
返回值:将结果返回给调用者
return:结束方法

3. 方法的调用格式

对象名 . 方法名称(实际参数列表);

创建对象

类名 对象名 = new 类名();

对象属性赋值

对象名 . 属性名 = 值;

对象创建时的内存细节

细节

对象类型  对象名称  =  new  对象类型();

解释

  1. 先在栈内存中,创建对应对象类型,对象名的空间,没有手动赋予初始值之前,不会自动给对象赋值
  2. 遇到new关键字,在堆内存中开辟一块新的内存空间,存放对象类型
  3. 将堆内存中,对象空间的地址值,赋值给栈内存中的对象,完成对象的创建

内存分类

  1. 堆内存
    • 堆内存中存储的是对象,遇到关键字new时,在堆内存中开辟一块空间,具有地址值,将地址值赋予堆内存中的变量。对于堆内存,会在创建时自动赋予默认值
    • 对象使用完成后,会在不确定的某个时间回收,由GC控制
    • new关键字,是指告诉JVM,需要明确的去创建一个新的对象,去开辟一块新的堆内存空间
    • 堆内存,与栈内存不同,优点在于我们创建对象时,不必关注堆内存中需要开辟多少存储空间,也不需要关注内存占用时长
    • 垃圾回收器 回收堆内存的规则:当栈内存中不存在此对象的引用时,则视为垃圾,等待垃圾回收器回收
  2. 栈内存
    • 栈内存中存储的是变量,变量在声明的过程中存储到栈内存中,不会自动给值,除非在程序中手动赋值,变量在栈内存中使用完毕之后要立即释放
    • Java中一个线程一个栈区,每一个栈中的元素都是私有的,不能被其他栈所访问,栈有先进后出的特点,栈中的数据大小与生命周期都是确定的,缺乏灵活性,但是,栈的存取速度要比堆快仅次于寄存器
    • 栈内存,通过栈指针来创建和释放空间
    • 指针向下移动,会创建新的内存,向上移动,会释放这些内存
    • 但是这种移动方式,必须指明移动的大小与范围
  3. 方法区
    • 类信息,静态的变量,常量,成员方法
  4. PC寄存器
    • 当前正在执行的JVM的指令地址,每个线程启动时,都会创建一个PC寄存器
  5. 本地方法栈
    • 保存本地native方法的地址

构造方法

构造方法:所有Java类,都至少有一个构造方法,如果没有编写构造方法,则默认有一个

作用:用于对象的初始化
执行时机:在创建对象时,自动调用
特点

  1. 所有的Java类,有至少有一个构造方法,如果没有明确的编写构造方法,则编译器对自动生成一个无参的构造方法,构造方法中没有任何代码
  2. 如果编写了任意一个构造器,则编译器不会自动生成无参构造方法
  3. 构造方法没有返回值类型

方法的重载

重载:方法名称相同,参数列表不同(参数列表长度,参数列表个数,参数类型顺序不同),与返回值类型无关;
调用重载的方法时,根据参数列表选择对应的重载方法

同样,构造方法也可以重载

重载的意义:根据不同的使用场景,选择不同的重载方法

匿名对象

数列表长度,参数列表个数,参数类型顺序不同),与返回值类型无关;
调用重载的方法时,根据参数列表选择对应的重载方法

同样,构造方法也可以重载

重载的意义:根据不同的使用场景,选择不同的重载方法

匿名对象

只使用一次的对象,可以设置为匿名对象 ,如果一个对象准备使用两次或以上,那么一定要给对象创建对象名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值