03 Java 修饰符
Java 修饰符主要分为两类:
- 访问修饰符
- 非访问修饰符
访问修饰符
- public,对所有类可见
- protected,对同一包内的类和子类可见
- default,同一个包内的类可见
- private,对当前类可见
| 修饰符 | 当前类 | 同一包内 | 子孙类 | 其它包 |
|---|---|---|---|---|
| public | Y | Y | Y | Y |
| protected | Y | Y | Y | N |
| default | Y | Y | N | N |
| private | Y | N | N | N |
非访问修饰符
static
- static 是一个修饰符,被 static 修饰的成员变量和成员方法,不依赖类的特定实例,被类的所有实例共享,因此静态类方法中不可以定义 this,super 等关键字。
- 静态成员变量和方法,可以使用类直接调用,如下可以直接使用 Dog 访问 name,age,printInfo()。
- 静态方法只能访问静态成员,非静态方法既可以访问静态也可以访问非静态成员,如在 printInfo() 方法使用 static 修饰,其中涉及的 name 和 age 也必须使用 static 修饰。
public class Dog {
static String name;
static int age;
public static void printInfo() {
System.out.println("name:" + name + ", age:" + age);
}
public static void main(String[] args) {
Dog.name = "roy";
Dog.age = 3;
Dog.printInfo();
Dog dog = new Dog();
dog.printInfo();
}
}
name:roy, age:3
name:roy, age:3
final
- final 可以修饰类,方法,变量(成员变量和局部变量)
- 当 final 修饰一个类,表示这个类不能被继承
- 当 final 修饰一个方法,明确禁止该方法在子类中被覆盖
- 当 final 修饰一个变量,如是基本类型,表示数值一旦确定,不能修改,如是引用类型,则初始化之后不能指向另一个对象
abstract
- 抽象类不能实例化对象,声明抽象类的唯一目的是将来对该类进行扩充
- 一个类不能同时被 abstract 和 final 修饰,如果一个类包含抽象方法,则类一定要声明为抽象类,抽象类不一定有抽象方法
- 抽象方法是一种没有任何实现的方法,该方法具体由子类提供
- 抽象方法不能被声明为 final 和 static
- 任何集成抽象类的子类必须实现弗雷的所有抽象方法,除非子类也是抽象类
public abstract class SuperClass {
abstract void m();
}
class SubClass extends SubClass {
void m() {
………………
}
}
synchronized
synchronized 表示同一时间只能被一个线程访问
public synchronized void showDetails() {
}
volatile
volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值,而且,当成员变量发生改变时,会强制线程将变化的值回写到共享内存,这样在任何时刻,两个不同的线程总会看到某个成员变量的同一个值。
public class Run {
private volatile boolean active;
}
03 Java 修饰符的更多相关文章
- JAVA修饰符类型(public,protected,private,friendly)
转自:http://www.cnblogs.com/webapplee/p/3771708.html JAVA修饰符类型(public,protected,private,friendly) publ ...
- Java修饰符关键词大全
所以我以此主题写了这篇文章.这也是一个可用于测试你的计算机科学知识的面试问题. Java修饰符是你添加到变量.类和方法以改变其含义的关键词.它们可分为两组: 访问控制修饰符 非访问修饰符 让我们先来看 ...
- JAVA修饰符类型(转帖)
JAVA修饰符类型(public,protected,private,friendly) public的类.类属变量及方法,包内及包外的任何类均可以访问:protected的类.类属变量及方法,包内的 ...
- java修饰符public final static abstract transient
JAVA 修饰符public final static abstract transient 关键字: public final static abstract ... 1.public prot ...
- Java基础之Java 修饰符
前言:Java内功心法之Java 修饰符,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) Java语言提供了很多修饰符,主要分为以下两类: 访 ...
- 浅析java修饰符之public default protected private static final abstract
浅析java修饰符之public default protected private static final abstract 一 修饰符的作用:用来定义类.方法或者变量,通常放在语句的最前端 ...
- 【java初探外篇01】——关于Java修饰符
本文记录在学习Java语言过程中,对碰到的修饰符的一些疑问,在这里具体的拿出来详细学习和记录一下,以作后续参考和学习. Java修饰符 Java语言提供了很多修饰符,但主要分两类: 访问修饰符 非访问 ...
- Java知识回顾 (2) Java 修饰符
一.Java 修饰符 1.1 访问控制修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default (即缺省,什么也不写): 在 ...
- Java-Runoob:Java 修饰符
ylbtech-Java-Runoob:Java 修饰符 1.返回顶部 1. Java 修饰符 Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 修饰符用来定义类.方法或者变 ...
随机推荐
- 什么是shell 是不是什么时候都可以使用shell
因为Shell似乎是各UNIX系统之间通用的功能,并且经过了POSIX的标准化.因此,Shell脚本只要"用心写"一次,即可应用到很多系统上.因此,之所以要使用Shell脚本是基于 ...
- TCP_Wrappers & PAM & Nsswitch服务
cpwrapper:工作在第四层(传输层),能够对有状态连接的服务进行安全检测并实现访问控制的工具.部分功能上跟iptables重叠. 对于进出本主机访问某特定服务的连接基于规则进行检查的一个访问控制 ...
- SQL_server_2008_r2和visual studio 2010旗舰版的安装(2013-01-16-bd 写的日志迁移
(以下操作是在Oracle VM virtualBox虚拟机中操作的,其实VMware Workstation 9虚拟机也挺不错的,不过用了很久的vmware想换个虚拟机用用 就暂时用Oracle V ...
- php COM
查看php.ini中是否已经开启了com.allow_dcom = true 从php/ext/里面查找一下有没有这个php_com_dotnet.dll这个文件 如果没有网上下载个,一般都会有的吧应 ...
- 图解HTTP总结(4)——返回结果的HTTP状态码
HTTP状态码负责表示客户端HTTP请求的返回结果.标记服务器端的处理是否正常.通知出现的错误等工作. 状态码的类别 2XX 成功 200 OK 表示从客户端发来的请求在服务器端被正常处理了. 在响应 ...
- C# WPF使一个窗口挡在最前面,且不处理此窗口就不能点击其他窗口
模态框弹出就可以了.窗口用ShowDialog调用. 可以在子窗体里把WindowStartupLocation设置为CenterOwner, 让子窗体在MainWindow的中心位置显示
- gradle编译很慢解决方法
1.升级内存,内存最好在8g以上. 我的12g,编译运行,2s22ms,不到3s. 2.设置Android staido 不要 打开instant run
- CC3200模块的内存地址划分和bootloader,启动流程(二)
1. 首先启动内部ROM固化的BOOT,然后这个ROM启动需要使用内存空间0X2000 0000 --- 0X2000 4000共16K的空间.一级BOOT的作用是串口升级和驱动库. 2. 然后是二级 ...
- HTTPClient和HttpURLConnection实例对比
HttpURLConnection是java的标准类,什么都没封装. HTTPClient是个开源框架,封装了访问http的请求头,参数,内容体,响应等等. 简单来说,HTTPClient就是一个增强 ...
- 《Cracking the Coding Interview》——第17章:普通题——题目3
2014-04-28 22:18 题目:计算N的阶乘尾巴上有多少个零? 解法:计算5的个数即可,因为2 * 5 = 10,2的个数肯定比5多.计算5的个数可以在对数时间内搞定. 代码: // 17.3 ...