zoukankan      html  css  js  c++  java
  • Java 修饰符

    访问修饰符

    公有访问修饰符-public

    • 对所有类可见。
    • 使用对象:类、接口、变量、方法。
    • 父类中声明为 public 的方法在子类中也必须为public。
    public class Demo; 
    public  int num = 1; 
    public void getName( ){
    }
    

    默认访问修饰符

    • 使用对象:类、接口、变量、方法。
    class Demo
    {
        int num = 1; 
        void getName( ){ 
        }
    }
    

    受保护的访问修饰符-protected

    • 使用对象:变量,构造方法,方法成员,不能修饰类(内部类除外)。
    • 注意:
    1. 父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。
    2. 子类与父类在同一包中:被声明为 protected 的变量、方法和构造函数(构造器)能被同一个包中的任何其他类访问;
    3. 子类与父类不在同一包中:那么在子类中,子类实例可以访问其从父类继承而来的 protected 方法,而不能访问父类实例的protected方法。
    class Test {
       protected  getNamer() {
          // 实现细节
       }
    }
    class Test1 extends Test {
     protected  getNamer() {
          // 实现细节
       }
    }
    

    私有访问修饰符-private

    • 在同一类内可见。
    • 使用对象:变量、方法。
    • 主要用来隐藏类的实现细节和保护类的数据。
    • 只能通过类中公共的 getter 方法被外部类访问。
    • 父类中声明为 private 的方法,不能够被继承。
    class Logger {
       private String format;
       public String getFormat() {
          return this.format;
       }
       public void setFormat(String format) {
          this.format = format;
       }
    }
    class Name{
        public static void main(Sting[] args){
            Logger name = new Logger(a);
            System.out.println(name.getFormat());
        }
    }
    

    访问权限

    修饰符 当前类 同一包内 子类 其他包
    public 可访问 可访问 可访问 可访问
    protected 可访问 可访问 可访问 不可访问
    default 可访问 可访问 不可访问 不可访问
    private 可访问 不可访问 不可访问 不可访问

    非访问修饰符

    static 修饰符

    静态变量(类变量):

    • 用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。
    • 局部变量不能被声明为静态变量。

    静态方法:

    • 用来声明独立于对象的静态方法。
    • 静态方法只能使用静态变量。
    class Demo
    {
        private static int num = 1;
        public static int getNum(){
             return num;
        }
    }
    
    public class TT { 
       public static void main(String[ ] args){
          System.out.println("num =  " + Demo.getNum());     
       }
    }
    

    final 修饰符

    final变量

    • 变量一旦赋值后,不能被重新赋值。
    • 被 final 修饰的实例变量必须显式指定初始值。
    • 内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。
    final int num = 2;
    public static final  int NUM  = 2; //常量
    

    final方法

    • 父类中的 final 方法可以被子类继承,但是不能被子类重写。
    class Demo
    {
        private static int num = 1;
        public final int getNum(){
            return num;
        }
    }
    class Demo1 extends Demo
    {
    }    
    public class TT { 
       public static void main(String[ ] args){
          System.out.println("num =  " + new Demo1().getNum());     
       }
    }
    

    final 类

    • final 类不能被继承。
    public final class Test{ }
    

    abstract 修饰符

    抽象类

    • 抽象类不能用来实例化对象,目的是为了将来对该类进行扩充。
    • 如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则编译错误。
    • 抽象类可以包含抽象方法和非抽象方法。
    abstract class Name{
       private String name;
       public abstract void setName(); //抽象方法
       //非抽象方法
       public void getName(){
           rerurn this.name;
       }
    }
    

    抽象方法

    • 抽象方法的具体实现由子类提供。
    • 抽象方法只能被声明成abstract。
    • 任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。
    public abstract void setName(); //抽象方法
    

    synchronized修饰符

    • 被声明的方法同一时间只能被一个线程访问。
    public synchronized void setName(){
    }
    
  • 相关阅读:
    Netty源码分析——准备
    Netty入门
    Netty源码分析——EventLoopGroup建立
    三层架构搭建(asp.net mvc + ef)
    Springboot 1.5.x 集成基于Centos7的RabbitMQ集群安装及配置
    Springboot 2.0.x 集成基于Centos7的Redis集群安装及配置
    Springboot 2.0.x 引入链路跟踪Sleuth及Zipkin
    JAVA编码 —— 字符串关键字内容替换
    使用java发送QQ邮件的总结
    Docker原理探究
  • 原文地址:https://www.cnblogs.com/hen-java/p/12597167.html
Copyright © 2011-2022 走看看