类与对象(下)

一,包(package) import java.util.Arrays;
定义一个包:组织代码 和目录一致(不是准确定义)
定义包:①新建目录,目录名称就是包名称(全小写,单词之间用下划线分割)package hello_world;
定义目录:p1/p2/p3 定义一个类Hello package p1.p2.p3;
②使用包:import 包名称.类名称; import p1.p2.p3.HelloWorld;
二,访问权限(限定符,影响的是访问权限)
两种情况:修饰顶级(Top-level)
修饰成员级(Member-level)
四种访问限定符:
在这里插入图片描述
在这里插入图片描述
三,静态方法/静态属性
1,方法(普通方法,静态方法(类方法))
2,属性(普通属性,静态属性(类属性))
语法:限定符 static 被static修饰的属性就是静态属性 被static修饰的属性就是静态属性
理解:普通属性/普通方法 都绑定着一个隐含着的对象(this)
static 的含义就是和对象解绑,静态属性不再保存在对象(堆区)中,而是保存在类(方法区)中。
静态方法调用时,没有隐含着的对象,所以也就无法使用this关键字。
3,访问静态属性/调用静态语法:
内部:属性名称,类名称.属性名称,this.属性名称
方法名称(实参列表),类名称.方法名称(实参列表),this.方法名称(实参列表)
外部:类名称.属性名称 ,对象的引用.属性名称
类名称.方法名称(实参列表),对象的引用.方法名称(实参列表)
注意:在静态方法(静态上下文)中,无法使用this关键字,因为没有一个隐含对象和该方法绑定(不能访问普通属性和普通方法)
4,一个类的所有的对象是可以共享静态属性的(可以适当的看作C语言的全局变量)
System.out.println:System是类,out是System类下的属性,println是out属性下的方法
四,属性的初始化(①和②优先执行,按照定义顺序,③最后执行(与构造方法的位置无关))(对象被实例时)
1,定义时初始化 int a=10;
2,构造代码块(直接大括号)
3,在构造方法中初始化
五,静态属性的初始化(发生类被加载的时候)
1,定义时初始化 static int a=10;
2,静态构造代码块 static {a=20;}
类的信息一开始是以字节码(bytecode)*.class形式保存在磁盘上的
类的加载过程就是类加载器(ClassLoader)在对象的目录上找到指定类的字节码文件,并且进行解析,然后放到内存的方法区的过程
类只有在被使用到的时候才会进行加载(一般不会卸载)
①用类去实例化对象
②调用静态方法
③访问静态属性
六,代码块的执行顺序
静态代码块优先于构造代码块执行,无论产生多少对象,静态代码块只执行一次。构造块优先于构造⽅法执⾏,每产⽣⼀个新的对象就调⽤⼀次构造块,构造块可以进⾏简单的逻辑操作(在调⽤构造⽅法前)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值