1.访问控制符的使用
( 在创建方法时我们经常首先打出修饰符,这个修饰符就是指访问控制符。)
访问控制符用于可控制一个类的成员是否可以被其他类所访问。对于局部变量,其作用域就是其所在方法,不能被其他类访问,因此不能使用访问控制符修饰。
java访问控制符一共有private、default、protected和public四种,它们的访问级别从小到大依次为:
它们的访问权限范围如下:
访问修饰符 | 同一个类中 | 同一个包中 | 子类中 | 所有类中 |
---|---|---|---|---|
private(私有) | ✔ | ▁ | ▁ | ▁ |
default(默认) | ✔ | ✔ | ▁ | ▁ |
protected(受保护) | ✔ | ✔ | ✔ | ▁ |
public(公共) | ✔ | ✔ | ✔ | ✔ |
注意:如果修饰符什么都不写,则默认为default
1-1 访问控制符的封装:
在是使用private时,其他类则不能访问引用其中属性、方法,就像把自己封闭一样,这就是封装。
封装主要实现以下目的:
(1)隐藏类的实现细节。
(2)让使用者只能通过事先预订的方法访问数据,从而可以在该方法中加入控制逻辑,限制对属性的不合理访问。
(3)可进行数据检查,有利于保证对象信息的完整性。
(4)便于修改,提高代码的可维护性。
2.this关键字的含义和使用
(this关键字总是指向调用该方法的对象)
让类中的一个方法访问该类中的另一个方法或实例成员变量。
this.方法名/属性名();
public class Hero{
//定义jump方法
public void jump(){
System.out.println("---英雄遇到了障碍需要跳过去---");
}
//定义run方法
public void run(){
System.out.println("---执行run()方法英雄正在奔跑---");
System.out.println("---hero对象已经被创建内存地址:"+this.hashCode()+",它将实行jump()方法---");
this.jump();
}
}
解决实例变量和局部变量同名
String name;
public void setName(String name){
this.name = name;
}
3.static关键字的含义和使用
静态成员变量
类的成员变量分为静态变量和实例变量。被static修饰的成员变量就是静态变量。静态成员变量属于所在类,被所有实例共享,并可直接通过类访问,也可通过类的实例访问。
public static int count;
如上方例子,就是一个静态成员变量
静态变量和实例变量的区别:
静态成员变量共享一个内存空间,其中一个修改,其他所有的也会被修改;
实例变量每创建一个,则会开辟一个内存空间,互不干扰,互不侵犯。
静态方法
被static修饰的成员变量就是静态方法,也可直接通过类访问。注意在静态方法中不能访问非静态成员。如实例属性、实例方法。
public static void square(){
System,out.println("我是静态方法");
}
静态代码块
静态代码不存在任何方法体中,它在java虚拟机加载类时被执行。如果类中包含多个静态代码块,则Java虚拟机将按照出现顺序执行,并只执行一次。
public class StaticBlock{
static{
System.out.println("---第一个静态代码块---"); }
static{
System.out.println("---第二个静态代码块---"); }
static{
System.out.println("---第三个静态代码块---"); }
}
注意:如果两个类存在继承关系,子类和父类都存在静态代码块,首先向执行父类中的静态代码块。