构造块在编译的时候会被放在构造器语句块中代码的最上面,如果存在this调用其他构造器,必然先调用其他构造器,因为this必须存在于首行才能调用其他构造器
*
- 使用debug调试:
- 1.先打断点
- 2.debug模式运行 f5进入细节 f6下一步执行 f7返回方法的调用出
block块:{} 就是一个作用域
- {}->方法中|语句块中 --局部代码块|普通语句块 执行时机:跟随方法执行
- {}->类中方法外 --构造块 执行时机:new对象
- static{} ->类中方法外–静态块 执行时机:类第一次加载的时候
- 同步块–>多线程
- 注意:构造块会在创建对象的时候,其中一步调用构造器,构造块会在构造器之前执行,如果由多个构造块,从上倒下依次执行
-
静态块是静态的内容,会在类第一次加载的时候执行一次
- 执行顺序:静态块–main–构造块–构造器
static 静态的 - static修饰变量->静态变量|类变量 static是成员修饰符,不能修饰局部
- static修饰方法->静态方法|类方法
- 被static修饰的方法|变量使用方式:
-
1.类名.静态变量名
-
类名.静态方法名
-
2.对象.静态变量名
-
对象.静态方法名
- 静态的内容是属于类的,成员的内容是都属于对象的,跟随对象使用
- 静态的变量会在类第一次加载时候加载,独有一份,当前类中所有对象共享的资源
- 在静态的内容中,可以直接使用静态的内容,不可以直接使用非静态的内容
- 再非静态的内容中,可以直接使用静态的内容,可以直接使用非静态的内容
定义一个person类
-
安全隐患: 不想让外部能够随便使用成员属性,保证属性安全
-
private 私有的 成员修饰符,不能修饰局部变量
-
私有的内容,只能在本类中使用
-
对的私有的内容提供公共访问方式 设置器 访问器
-
方法 setter getter
-
私有的属性,公共的访问方式真的安全了么???
-
1.不能直接操作属性 2.使用逻辑进行判断
-
面向对象的三大特性之一:
-
封装:对外隐藏内部的实现细节,提供公共的访问方式
-
私有是封装么???
-
私有肯定是封装
-
封装不一定只有私有
-
方法,类..都是封装的体现
-
好处:
A:隐藏实现细节,提供公共的访问方式
B:提高代码的复用性
C:提高代码的安全性javabean类:–>实体类|模板类|封装类
javaBean编码规则:
(1) javaBean必须声明为public class,这样才能够被外部所访问;
(2) 一个JavaBean中至少存在一个无参构造方法
(3)类中所有的属性都必须封装,即:使用private声明;
(4)为封装的私有属性提供公共的setter、getter方法;
|继承: 子承父业
- 为什么使用继承:
-
为了达到类层面的复用
- 如何使用继承:
-
子类 extends 父类
- 特点:
-
1.子类一旦继承父类,就自用拥有了父类中的内容
-
2.一个类可以有多个子类,一个类只能有一个父类,单继承机制,多实现
-
3.子类是父类的延续+扩展
- 父类|基类|超类:–>被继承的类
- 子类|派生类:–>继承其他类的类
- 继承的优点:
-
提高代码的复用性
- 单继承的优点: 使用简单
- 但继承的缺点: 不便于后期维护
- 面向对象设计原则之一:开闭原则 对修改关闭,对扩展开放