除了访问性修饰符,我们还有非访问性修饰符。这里主要说明static与final修饰符,其他修饰符以后用到再说。

一、static修饰符

static修饰符是用来修饰方法与变量。

1、创建StaticTest.java

public class StaticTest {
    private static int num = 0;////“静态变量(类变量)”不能被使用在类的非静态方法中。
    public static int getNum() {
        //static int num = 2;  //static变量为类变量,局部变量不能声明为static变量
        return num;
    }

    public static void add() { //“静态方法”不能使用类的非静态变量。
        num++;
    }

    public static void main(String[] args) {
        System.out.println("num:" + StaticTest.getNum() + " start");
        for (int i = 0; i < 10; ++i){
            add();//不属于任何对象,即使没有创建对象,也能使用变量和调用方法
        }
        System.out.println("num:" + StaticTest.getNum() + " end");
    }
}

这里的static用法与c有些不同,观察细微点,才能更好的理解java。

2、运行

javac StaticTest.java
java StaticTest

结果如下图:

 二、final修饰符

1、创建FinalTest.java

public class FinalTest {
    final int value = 10; //实例变量
    final int value2;

    public FinalTest() {
        value2 = 10;//不会报错,在构造方法可以直接赋值。
        System.out.println("value2=: " + value2);
    }
    public final void test() {
        int value = 9;//局部变量:不会报错,因为重新赋值给int类型了。
        //value = 9; //报错,final定义的变量不能重新赋值。
        //value2 = 8;//报错,不能在方法中赋值
        System.out.println("value=: " + value);
    }
    public static void main(String []args) {
        FinalTest getText = new FinalTest();
        getText.test();
    }
} 

这里主要关注的final变量与方法。final变量主要是不能再次复制,而final方法主要是不能被重写。

2、运行

javac FinalTest.java
java FinalTest 

结果如下:

3、注意点

  • final修饰一个类的时候,表示这个类不能被继承。
  • 一个类的private方法会隐式的被指定为final方法。被final修饰的方法不能被重写(包括子类)。
  • final定义的变量必须赋初值(不能在方法中赋值),并且只能初始化一次。

Java 非访问修饰符的更多相关文章

  1. java 非访问修饰符 final 的用法

    final 修饰符,用来修饰类.方法和变量 final修饰的类不能被继承 举例,String类是final类,不可以被继承: final修饰的方法不能被重写 只是不能重写,也就是不能被子类修改,但是可 ...

  2. java入门---修饰符&访问修饰符&非访问修饰符

        Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符     修饰符用来定义类.方法或者变量,通常放在语句的最前端.我们通过下面的例子来说明: public class ...

  3. Java中的四种权限修饰符及六种非访问修饰符(简识)

    一.是哪四种访问权限修饰符呢? public > protected > [default] > private (公共的 ) (受保护的) (默认的) (私有的) 二.简单认识四种 ...

  4. Java基础-访问修饰符

    访问修饰符 default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符.使用对象:类.接口.变量.方法. private : 在同一类内可见.使用对象:变量.方法. 注意:不能修饰类( ...

  5. static 静态域 类域 静态方法 工厂方法 he use of the static keyword to create fields and methods that belong to the class, rather than to an instance of the class 非访问修饰符

    总结: 1.无论一个类实例化多少对象,它的静态变量只有一份拷贝: 静态域属于类,而非由类构造的实例化的对象,所有类的实例对象共享静态域. class Employee { private static ...

  6. Java中访问修饰符public、private、protecte、default

    Java中访问修饰符public.private.protecte.default的意义讲解:public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”.被其修饰的类.属性以及方法不 仅 ...

  7. C# JAVA成员访问修饰符比较

    在面向对象的访问修饰符中常用的有public ,private ,protected C# 访问修饰符: private < protected internal < internal/p ...

  8. Java的访问修饰符的作用范围

    访问修饰符: private default protected public 作用范围: 访问修饰符\作用范围 所在类 同一包内其他类 其他包内子类 其他包内非子类 private 可以访问 不可以 ...

  9. JAVA面向对象-----访问修饰符

    访问修饰符是用来控制类.属性.方法的可见性的关键字称之为访问修饰符. 1.public 一个类中,同一包中,子类中,不同包中 2.protected 一个类中,同一包中,子类中 3.default 一 ...

随机推荐

  1. Hadoop 压缩

    压缩的好处 文件压缩的好处:减少文件存储锁需要的磁盘空间,加速数据在网络和磁盘上的传输. 常见的压缩格式 压缩格式 工具 算法 文件扩展名 是否可以切分 DELATE 无 DEFLATE     .d ...

  2. Hadoop NameNode判断 DataNode 节点宕机的时间

    .namenode 如何判断datanode节点是否宕机? 先决条件: datanode每隔一段时间像namenode汇报,汇报的信息有两点 ()自身datanode的状态信息: ()自身datano ...

  3. elasticsearch_dsl.exceptions.ValidationException: You cannot write to a wildcard index.

    elasticsearch_dsl.exceptions.ValidationException: You cannot write to a wildcard index. 这里是因为版本不匹配的问 ...

  4. 第07组 团队Git现场编程实战

    组员职责分工 团队成员 分工 杨明哲 爬数据,做网页 林兴源 合作编码完成了对美团数据的分析,分析出最有发展潜力的十佳好店 卞永亨 从大众点评分析出了服装商圈 林鑫 合作编码完成了对美团数据的分析,分 ...

  5. vue+elementui搭建后台管理界面(5递归生成侧栏路由)

    有一个菜单树,顶层菜单下面有多个子菜单,子菜单下还有子菜单... 这时候就要用递归处理 1 定义多级菜单 修改 src/router/index.js 的 / 路由 { path: '/', redi ...

  6. html常用标签详解

    html常用标签详解 一.总结 一句话总结: 这些资料没必要自己总结,可以直接网上找,简单方便,再根据需求改一下 二.HTML常用标签详解 转自或参考:HTML常用标签详解https://blog.c ...

  7. sqlite3 查看Cookie文件<转>

    原帖地址:https://blog.csdn.net/yygydjkthh/article/details/37604309 .使用命令对此数据库进行打开: $ sqlite3 cookies.sql ...

  8. postgresQL 服务器端守护进程

  9. Java 理论与实践-非阻塞算法简介

    在不只一个线程访问一个互斥的变量时,所有线程都必须使用同步,否则就可能会发生一些非常糟糕的事情.Java 语言中主要的同步手段就是 synchronized 关键字(也称为内在锁),它强制实行互斥,确 ...

  10. php redis set 单机锁(转)

    如果一个请求更新缓存的时间比较长,甚至比锁的有效期还要长,导致在缓存更新过程中,锁就失效了,此时另一个请求会获取锁,但前一个请求在缓存更新完毕的时候,如果不加以判断直接删除锁,就会出现误删除其它请求创 ...