Java SE_09笔记

                            ***## 面向对象***

1、
数据类型作为参数使用:
基本数据类型 传值(传常量在常量池中的地址)
引用数据类型 传址(对象在堆中的地址)
2、
面向过程-面向对象-思想 思考方式
类-对象
创建类的时候 其实就是在描述某一类事物
属性 变量
行为 函数
成员变量-对象的特有属性
成员函数
成员变量的默认初始化->显式初始化
如果成员变量与局部变量重名-this区别
this 当前对象的引用(标记该成员到底是被哪个对象所调用)
方法区 存放.class文件(Java可执行程序 字节码文件)
引用 基本 作为参数-匿名对象
3、
构造函数格式
1.函数名必须为类名
2.没有返回值类型,没有返回值
3.没有返回值类型不代表没有return
4.可以有权限修饰符
5.函数有参数列表,所以可以重载
6.当没有定义任何构造函数时 会存在一个默认无参且隐藏的构造函数
7.如果一旦定义任何构造函数,则默认的不存在
8.永远将无参构造函数定义出来
9.有了构造函数 还是是否需要set get 看数据今后是否仍需修改

对象的创建流程(不完全)
1.创建对象的引用变量
2.创建对象 开辟空间 分配地址
3.对成员变量进行默认初始化(隐式初始化)
4.构造函数进栈 同时显式初始化
5.依据构造函数的内容 进行针对性初始化
6.构造函数弹栈,对象创建完毕,将地址赋予引用变量

构造函数与成员函数有什么区别
1.构造函数没有返回值 成员函数有
2.构造函数只有在创建对象时使用且执行一次
  成员函数是在对象创建之后 任意次数调用
3.成员函数能否调用构造函数?不能!
4.构造函数能否调用成员函数(封装了构造函数中的代码,一般不会被外界调用)?能!
5.构造函数能否调用构造函数?能!为了简化代码
	this调用构造函数只能在第一句
	对this的调用必须是构造器中的第一个语句
	构造函数之间的调用不能产生环路!!

1、面向对象是基于面向过程的编程思想
特点:
是一种更符合我们的思想习惯的思想
可以将复杂的事情简单化
将我们从执行者变成了指挥者
面向对象开发,就是不断地创建对象,使用对象,指挥对象做事情
面向对象设计,其实就是在管理和维护对象之间的关系
面向对象特征,封装、继承、多态。
2、面向对象(类与对象)
编程语言就是为了模拟世界的事物,实现信息化。
如何表示一个现实世界的事物:
属性:就是该事物的描述信息(成员变量)
行为:就是该事物能够做什么(成员函数)
类:是一系列具有相关属性和行为的事物的集合,是一个抽象的概念
对象:是该类事物的具体表现形式,具体存在的个体
定义类其实就是定义类的成员(成员变量,成员函数)
如何创建对象:类名 对象名 =new 类名();
3、面向对象(成员变量和局部变量的区别)
3.1在类中的位置不同
成员变量 类中方法外
局部变量 方法内部或者方法声明上
3.2在内存中的位置不同
成员变量 堆内存中
局部变量 栈内存中
3.3生命周期不同
成员变量 随着对象的存在而存在,随着对象的消失而消失
局部变量 随着方法进栈而存在,随着方法的弹栈而消失
3.4初始化值不同
成员变量 有默认初始化值
局部变量 没有默认的初始化之 必须先定义再赋值后才能使用
4、面向对象(形式参数的分类)
基本数据类型作为形式参数:传值(传址 是常量在常量池中的地址)
引用数据类型作为形式参数:传址(对象在堆内存中的地址)
5、面向对象(匿名对象)
匿名对象:就是没有名字的对象,是对象的一种简化表示形式
匿名对象的两种使用情况:
对象调用方法仅仅一次的时候
作为实际参数传递
6、面向对象(封装概述)
封装概述:是指隐藏对象的属性和实现细节,仅对外提供访问方式。
好处:
1.隐藏实现细节,提供公共的访问方式
2.提高了代码的复用性
3.提高安全性
封装原则:
1.将不需要对外提供的内容都隐藏起来
2.把属性隐藏,提供公共方法对其访问
7、面向对象(private关键字)
private关键字是一个权限修饰符,可以修饰成员,被修饰的成员只在本类中才能访问。
private最常见的应用:
把成员变量用private修饰
提供对应的getXXX()和setXX()方法
8、面向对象(this关键字)
this代表所属类的对象引用,方法被哪个对象调用,this就代表哪个对象
什么时候用this
局部变量和成员变量重名
和super使用
9、面向对象(构造函数)
构造函数作用概述:给对象的数据进行初始化
构造函数格式:
方法名与类名相同
没有返回值类型
没有具体的返回值
构造方法注意事项:
如果你不提供构造函数,系统会给出默认构造函数
如果你提供了构造函数,系统将不在提供默认构造函数
构造函数也是可以重载的
构造函数是有return语句的
建议永远自己给出无参构造函数
成员变量赋值步骤:
隐式初始化
显示初始化
针对性初始化
后期修改值
10、面向对象(成员函数划分)
根据返回值:
有明确返回值
返回void类型的函数
根据形式参数
无参函数
带参函数
11、面向对象(对象的创建流程)
1.加载字节码文件
2.在栈内存中开辟对象空间
3.在堆内存中开辟对象空间
4.对对象的成员进行默认初始化
5.对对象的成员进行显示初始化
6.构造函数进栈对对象的成员进行针对性初始化
7.构造函数弹栈,对象创建完毕
8.将对象的地址赋予引用变量
12、面向对象(成员变量注意事项)
变量什么时候定义为成员变量:如果这个变量是用来描述这个类的信息的,那么该变量就应该定义为成员变量
变量到底定义在哪里:变量的范围越小越好,因为能及时的被回收
13面向对象(static关键字)
可以修饰成员变量和成员方法
static关键字特点
随着类的加载而加载
优先于对象存在
被类的所有对象共享(是否使用静态关键字的判断条件)
可以通过类名调用
static关键字注意事项:
在静态方法中是没有this关键字的
静态方法只能访问静态的成员变量和静态的成员方法
14、面向对象(静态变量和成员变量的区别)
所属不同
静态变量属于类,所以也称为类变量
成员变量属于对象,所以也称为实例变量
内存中位置不同
静态变量存储于方法区的静态区
成员变量存储于堆内存中
内存出现时间不同
静态变量随着类的加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
调用不同
静态变量可以通过类名调用,也可以通过对象调用
成员变量只能通过对象名调用

5_01、
在这里插入图片描述
在这里插入图片描述
5_2
在这里插入图片描述
在这里插入图片描述
3、
在这里插入图片描述
在这里插入图片描述
4、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5_03
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5_04
在这里插入图片描述
在这里插入图片描述
5_06
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5_07
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值