权限修饰符:是用来控制一个成员能够被访问的范围的。、
可以修饰成员变量、方法、构造方法、内部类。
实际开发中,一般只用private和public
成员变量私有
方法公开
特例:如果方法中的代码是抽取其他方法中的共性代码,这个方法一般也私有。
局部代码块
{
int a=10;
}//因为执行到这里,变量a就从内存里消失了
构造代码块
package oop.CodeBlock;
public class Student {
private int age;
private String name;
//构造代码块:
//1.写在成员位置的代码块
//2.作用:可以把多个构造方法中重复的代码抽取出来
//3.执行时机:我们在创建本类对象的时候会先执行构造代码块再执行构造方法
{
System.out.println("开始创建对象了");
}
public Student(){}
public Student(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package oop.CodeBlock;
public class CodeBlockDemo01 {
public static void main(String[] args) {
/* {
int a=10;
}*///因为执行到这里,变量a就从内存里消失了
Student s=new Student();
}
}
静态代码块
格式:static{}
特点:需要通过static关键字修饰,随着类的加载而加载,并且自动触发,只执行一次。
使用场景:在类加载的时候,做一些数据初始化的时候使用。
package oop.CodeBlockDemo02;
public class Student {
private String name;
private int age;
static{
System.out.println("静态代码块执行了");
}
public Student() {
System.out.println("有参构造");
}
public Student(String name, int age) {
this.name = name;
this.age = age;
System.out.println("无参构造");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package oop.CodeBlockDemo02;
public class Test {
public static void main(String[] args) {
Student s=new Student();
Student s2=new Student("karry",24);
}
}