学习java的第八天

Day8

this 关键字

代表当前对象(当前new的对象),存储对象的地址

1.能够在构造器的首行用来调用本类中的其他构造器

this(参数列表);

2.用来区分成员与局部同名问题

如果出现同名问题,默认就近原则 如果出现同名问题,想要指代调用同名的成员,需要 this.成员 调用 不存在同名问题,指代成员的时候,this.可以省略

this在构造器中默认指代当前new的对象 this在成员方法中,默认指代当前调用成员方法的对象

注意:

构造器之间不能相互调用 ​ 在静态的被static修饰的方法中不能使用this

 

static 关键字

静态的 ​ static是成员修饰符,只能修饰成员,不能修饰局部 ​ 成员位置: 类中方法外 ​ 成员内容: 定义在类中方法外 ​ 成员变量 : ​ 不被static修饰的变量 -->实例变量 ​ 被static修饰的 --> 静态变量|类变量 ​ 成员方法 ​ 不被static修饰的成员方法 --> 成员方法|实例方法 ​ 被static修饰的方法 -->静态方法|类方法 ​ 无论是否被static关键字修饰都定义在成员位置,都是成员

修饰变量 : 静态变量|类变量 ​ 修饰方法 : 静态方法|类方法

使用:

1.通过对象使用,通过对象的引用调用

引用.静态变量名 ​ 引用.静态方法名(参数列表);

2.通过类名调用

类名.静态变量名 ​ 类名.静态方法名(参数列表)

注意

静态内容是独一份的,在类第一次加载完成之后就进行初始化,只初始化一次 ​ 静态变量在静态区中(方法区中),所有对象共享的唯一的静态内容,加载内容是 先静态后成员

block块

{} 自成作用域

{} 定义在方法中或者语句块中 --> 局部代码块|普通语句块

{} 定义在类中方法外 -->构造块

static {} 定义在类中方法外 --> 静态块

 

构造块中的代码在编译期间会被编译到要执行的构造器代码上面,所以构造块代码在构造器代码之前执行 如果存在多个构造块,从上到下依次执行 在类第一次加载完成之后,就执行,并且只执行一次 如果存在多个静态块,从上到下依次执行

执行顺序: 静态块-->main-->创建对象了-->构造块-->构造器

作用:

静态块: 一般作为一些数据的加载,配置...在类加载完成之后就执行,并且只 执行一次,后续不能调用,不需要调用 ​ 可以为静态内容做初始化操作 ​ 构造块: 一般也是为对象的成员初始化 ​ 局部代码块: ​ 自成作用域 ​ 具有语义化特点

Debug 调试工具

作用:

1.追踪程序的执行流程 ​ 2.定位异常的位置 ​ 3.查看程序执行过程中变量的变化情况 ​ 4.根据程序的执行过程学习第三方框架的源码

使用;

1.设置断点 (当程序执行到断点所在位置,会进入到debug调试窗口,后面的每一行语句的执行由程序猿控制) ​ 在行号的后面点击一下设置断点,点一下取消断点 ​ 2.debug模式下运行 ​ step over F8 下一步跳过 下一步有方法的调用也不进入,不跟随执行,直接执行下一行 ​ step in F7 步入 下一步 下一步如果是自定义方法的调用,进入跟随执行,jdk提供的类库中的方法的调用,不进入 ​ Force step in alt+shift+F7 强制步入 下一步 下一步如果是自jdk提供的类库中的方法的调用,强制进入跟随执行 ​ step out 下一步调出方法的调用,直接结束调用执行进入下一步 ​ Run to cursor 跳到光标所在位置继续执行

包机制: -->文件夹

目的: 便于管理项目中众多的类,提供多种命名空间

包信息在类中的首行显示 pakage --> import --> 类的定义

不需要导包的类:

1.java.lang包下的内容 ​ 2.同包下的类

导包: 指明要使用的类的位置

1.使用的位置直接指明类的权限定名(包名.类名),但是只有当前这一次有效 2.使用import进行导包,当前类中都可以进行使用

import 包名.类名;

定义在类的上面

3.模糊匹配导入

import 包名.*;

模糊匹配某一个包下的所有类 ​ 会降低编译效率,不会降低运行效率

4.静态导入:只能导入静态内容

import static

注意:

先建立包再建类 ​ 定义包名的规则: 公司域名倒着写+功能名字|模块名字

private关键字 私有的

成员修饰符,只能修饰成员不能修饰局部的 ​ 一个成员一旦私有,只能在本类中使用,外部类无法使用

私有的成员需要配合公共的访问方式一起使用-->方法

设置器 setter ​ 访问器 getter

私有的属性配合公共的访问方式就能够实现安全么??

1.不能直接访问操作成员

2.设置器或者访问器中,方法中可以进行逻辑的判断等...

注意:

定义的模板类中的属性都要私有化,并提供一对公共的访问方式

面向对象的三大特性:

封装 继承 多态 封装: 隐藏内部的实现细节,对外提供公共的访问方式

优点: 隐藏内部的实现细节,对外提供公共的访问方式 提高安全性 提高复用性

体现: 类,方法等都是封装的体现 属性私有化是封装的体现 私有是封装 封装不仅仅是私有

JAVABEAN 指代一些列类

代表模板类,根据对象抽取共性定义的类,统一称为javabean 定义javabean的规范:

1.类是公共的 ​ 2.至少提供一个空构造,按需提供带参 ​ 3.属性私有化 ​ 4.公共的访问方式

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值