权限修饰符和代码块

2024-01-02 21:25:06

权限修饰符:是用来控制一个成员能够被访问的范围的。、

可以修饰成员变量、方法、构造方法、内部类。

权限修饰符的范围

权限修饰符的使用规则:

实际开发中,一般只用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);
        }
    }
    

文章来源:https://blog.csdn.net/qq_52326978/article/details/135347083
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。