权限修饰符:是用来控制一个成员能够被访问的范围的。、
可以修饰成员变量、方法、构造方法、内部类。
权限修饰符的范围
权限修饰符的使用规则:
实际开发中,一般只用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);} }