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