面向对象进阶

面向对象进阶

(封装,this,static,包和代码块)

封装

 即隐藏对象的属性和实现细节,仅对外公开接口。控制在程序中属性的读和修改的访问级别。
 例:把private 的属性,给他设立方法Get 和Set。这样可以进行数据的判断保护数据的合理性。

void setAge(int age){ if(age<= 0){ System.out.println("年龄不合理"); }else{ this.Age = age; } }

this

 this关键字 
	 *  调用类中的属性
	 *  调用类中的方法或构造方法
		(this在一个构造方法中调用另一个构造方法,调用代码必须在第一行)
	 *  表时当前对象

this调用构造函数

class Person{ private String name; private int age; Person(){ this("默认姓名",1);// 作用等于 name = "默认姓名" } }


static

static 的东西加载在方法区中。
static 的加载是当类被加载的时候就被加载了(可理解成,类的属性)(而不是类的对象的属性)
	类名.(static)属性

在这里插入图片描述

如果把region设为static

每个对象的创建都由static region的值

在这里插入图片描述


权限修饰符

在这里插入图片描述


代码块(构造代码块,静态代码块,同步代码块(后续学))

 格式
 {
	 +代码
 }

构造代码块

构造代码块在对象创造时执行且 执行在构造方法之前

构造方法不一定被调用(多参构造方法),但是构造代码块一定执行

在这里插入图片描述

静态代码快

静态代码块,随着类的加载(第一次使用类),静态代码块执行

因为类只加载一次,所以静态代码块也只执行一次(可以用来准备资源操作)

在这里插入图片描述

面试题:
	构造方法和构造代码块和静态代码块的执行顺序
		静态代码块 > 构造代码块 > 构造方法



面试题:
	构造方法和构造代码块和静态代码块的执行顺序
		静态代码块 > 构造代码块 > 构造方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值