类的基本使用(学习笔记)
类成员权限
访问级别 | 同类 | 同包 | 子类 | 不同包 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protect | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
类权限
访问权限 | 访问等级 |
---|---|
public | 公有访问权限 |
默认 | 包级访问权限,只能在当前包中访问 |
权限用于封装
封装概念
- 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
封装的步骤
- 私有化
- 提供getter和setter方法
- 在getter和settter方法中,添加判断语句
public class cat {
//私有属性
private String name;
private int age;
static {
System.out.println("静态代码块");
}
{//构造代码块: 在所有的构造方法执行之前,执行; 可以用于提高代码复用性
System.out.println("构造代码块");
}
public cat(){
System.out.println("构造方法");
}
public cat(String name,int age){
this.name = name;
this.age =age;
System.out.println("构造方法");
}
public void eat(){
System.out.println("普通方法");
]
//对包装属性的外部接口
public Sting getName() {
return name;
}
public void setName(Sting name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
构造方法5原则:
构造方法作用是对类进行初始化
- 构造方法 必须与类名同名
- 构造方法 参数可有 可没有
- 构造方法 不能有 返回值(void 也不能有)
- 一个类 可以有 多个 构造方法
- 构造方法伴随new一起使用
注:
- 构造方法可以私有,外部无法使用私有构造方法创建对象
- 类定义时提供默认的无参构造方法
- 构造方法不能被继承、覆盖、直接调用
- 构造方法可以有return语句,结束构造方法
代码块
局部代码块
局部代码块 : 规定变量作用域
构造代码块
构造代码块: 在所有的构造方法执行之前,执行; 可以用于提高代码复用性
特点:
特点:每次在执行构造方法之前,如果当前类中有构造代码块,优先执行构造代码块,然后在执行构造方法!
public class User {
String username;
{
System.out.println("构造代码块");
}
public User() {
System.out.println("无参构造");
}
}
静态代码块
特点:
只执行一次,被static修饰的,都和类有关系!
public class User {
String username;
static {
System.out.println("静态代码块");
}
public User(String username) {
this.username = username;
System.out.println("有参构造");
}
}
优先级
关于构造代码块,静态代码块,构造方法之间的优先级?
静态代码块 > 构造代码块 > 构造方法
父类 > 子类
static
属性,方法,代码块
特点:
- 静态的随着类的加载而加载,
- 优先于对象而存在,
- 为所有对象所共享,
- 可以通过类名调用
静态变量:
特点:
class staticTest {
int age;
static String staticword;
}
class staticTest Demo {
public static void main(String[] args) {
staticTest t = new staticTest ();
t.age = 10;
//可以通过类名调用,为所有对象共享
staticTest .staticword = "这是一个静态字段";
}
}
静态方法:
特点:
静态的不能直接访问非静态的
非静态的可以访问静态的
静态代码块:
作用:
可以对静态的属性进行初始化
规则:
随着类的加载而加载,只执行一次。
静态代码块 > 构造代码块 > 构造方法
父类 > 子类