http://my.oschina.net/u/1464678/blog/210359

1.       类(class)

可见性修饰符: public—在所有类中可见,在其他包中可以用import导入。

                             缺省—就是没有修饰符,在同一个包中的类中可见,在其他包中不能用import导入。

              修饰符:final—终态类,表示该类不能被继承

abstract抽象类,不能新建对象

2.       变量(variable)

Java中变量有两种,方法变量和字段变量

方法变量只能用一个修饰符:final—表示常量,不能修改

下面是字段变量的修饰符

可见性修饰符:public—在任何类中可见

protected—       在子类中或同一个包中可见

private—只在本类中可见,子类中也不可见

                                    缺省—在同一个包中可见,子类不在一个包中,子类中也不可见  

        修饰符:static—静态变量,被类的所有实例共享

final—常量,定义后不能修改

*transient—告诉编译器,在类对象序列化的时候,此变量不需要持久保存

*volatile—指出可能有多个线程修改此变量,要求编译器优化以保证对此变量的修改能够被正确的处理

这两带*的不是很常用,但也是Java的修饰符,我也不是很清楚

3.      方法(method)

可见性修饰符:public—在任何类中可见

protected—在子类中或同一个包中可见

private—只在本类中可见,子类中也不可见

                              缺省—在同一个包中可见,子类不在一个包中,子类中也不可见

修饰符:   static—静态方法,并不需要创建类的实例就可以访问静态方法

final—常方法,所有子类不能覆盖该方法,但可以重载

                      abstract—抽象方法,在抽象类中没有实现的方法

                      native—本地方法,参见Java Native Interface(JNI)

                             synchronized —在多线程中,synchronized方法调用时,其他所有方法不能调用该方法

4.       接口(interface)

可见性修饰符:public—所有类中可见

缺省—同一个包中可见

接口中的变量总是需要定义为“ public static final 接口名称”,但可以不包含这些修饰符,编译器默认就是这样

因为接口是不可能有直接实例的,那样的话也就是不可能修改(final),也不可能通过实例访问的(static)。

接口中的方法只能使用publicabstract修饰符

==================================================================================================

public:可以被任何类访问。
final:使用些修饰符的类不可以被继承。
abstract:如果要使用abstract类,需要建立一个继承自它的新类,来实现其中的抽象方法。

变量:
1,Java中没有全局变量,只有方法变量、实例变量(类中非静态变量)、类变量(类中静态变量);
2,方法中的变量不可以有访问修饰符,所以访问修饰符只是针对类中定义的变量;
3,声明实例变量时,如果没有赋初值,将会被初使化为Null(引用类型)或是0、false(原始类型);
4,可以通过实例变量初使化器来初使化较复杂的实例变量,实例变量初使化器是一个用{}包含的语句块,在类的构造器被 调用时运行,运行于父类构造器之后,构造器之前;
5,类变量(静态变量)也可以通过变量初始化器进行初始化,类变量的初使化器是一个用static{}包括起来的语句块,而且只可以被初使化一次。
访问修饰符:
public:可以被任何类访问。
protected:可以被同一包中的所有类访问;也可以被子类访问,即使子类没有在同一包内。
private:只能被当前类中的方法访问。
缺省:无访问修饰符,可以被同一包中的所有类访问;如果子类没有在同一包中,不可访问。
修饰符:
static:静态变量(又称为类变量,实例变量等),可以被类的所有实例所共享,而且在不创建类的实例的情况下也可以对其进行访问。
final:常量,其值只能分配一次,而且不可更改;注意不要使用const,虽然它和C、C++中的const关键字含义一样。

transient:即告诉编译器,在该类的对象进行序列化的时候,这个变量不需要持久保存。这么做的主要原因是这个变量可以通过其它的变量来获取,使用它主要是从性能的角度考虑。
volatile:指出可能有多个线程修改此变量,要求编译器优化以保证对此变量的修改能够被正确地处理。
方法:
1,类的构造方法不能有修饰符、返回类型和throws子句
2,类的构造器方法被调用时,它首先调用父类的构造器方法,然后运行实例变量和静态变量的初使化器,然后才运行该类构造器本身。
3,如果构造器方法没有显示调用一个父类的构造器,那么编译器会为其自动加上一个默认的super(),而父类若没有默认的无参数构造器,编译器就会报错。super()必须是构造器方法的第一个子句。
4,注意理解private类构造器方法使用的技巧。
static:静态方法(又称为类方法、以及实例方法等),它提供不依赖于类实例的服务,也就是说,并不需要创建类实例就可以访问静态方法。
final:防止任何子类重载该方法;注意不要使用const,虽然它和C、C++中的const关键字含义一样。
abstract:抽象方法,类中已声明但没有实现的方法,不能将static方法、final方法以及构造器方法声明为abstract。
native:用该修饰符修饰的方法在类中并没有实现,大多数情况下这类方法的实现是由C或C++编写的。可以参见Sun的Java Native接口(JNI),JNI提供了运行时加载一个native方法的实现,并将其与一个Java类关联。
synchronized:多线程支持,当一个线程调用该方法时,就会为这个对象加一个锁,从而其它线程就不可以再次调用这个方法,直到前一个线程将其释放。

接口:
1,接口不能定义任何其声明方法的实现。
2,接口中的变量总是需要定义为“public static final 接口名称”,也可以不包含这些修饰符,但编译器默认就是这样,显示的包含修饰符主要是为了程序逻辑清晰。

转载于:https://www.cnblogs.com/xunbu7/p/5111684.html

[转]java构造方法的访问修饰符相关推荐

  1. 语法基础(三. 类,属性,方法,方法重载,方法重写,构造方法,访问修饰符)

    语法基础(三. 类,属性,方法,方法重载,方法重写,构造方法,访问修饰符) (如有错误,欢迎指正,感谢!) 类 类是面向对象的程序设计中的概念,实现信息的封装 概念: 类就是拥有相等行为和相同的属性的 ...

  2. java中的访问修饰符

    对Java中的修饰符一直记不住,现在结合网上的一些资料进行总结,并重点说明一下protected修饰符. 一. Java中的访问修饰符 Java面向对象的基本思想之一是封装细节并且公开接口.Java语 ...

  3. [转载] 基本概念:java中的访问修饰符

    参考链接: Java中类或接口的访问说明符 转自:https://www.cnblogs.com/tjudzj/p/4443066.html 对Java中的修饰符一直记不住,现在结合网上的一些资料进行 ...

  4. Java有哪些访问修饰符呢?

    转自: Java有哪些访问修饰符呢? Java语言中访问修饰符用于设置类,变量,方法和构造函数的访问级别. 四个不同的访问修饰符为: 无关键字(不指定修饰符):对包可见,不需要修饰符. private ...

  5. java中 访问修饰符限制性最高的是,问:JAVA中,访问修饰符限制性最高的是( )。(选择一项)...

    问:JAVA中,访问修饰符限制性最高的是( ).(选择一项) A:friendly,B:protected ,C:private ,D:public 正确答案:绛旓細铻烘棆姊ā寮? 绛旓細鑷富鎬? ...

  6. JAVA访问修饰符限制性最高的_问:JAVA中,访问修饰符限制性最高的是protected ( )...

    问:JAVA中,访问修饰符限制性最高的是protected ( ) A:对,B:错 正确答案: 解析: 问:JAVA中,访问修饰符限制性最高的是protected ( )A:对,B:错 相关问题: 密 ...

  7. java基础之访问修饰符

    java基础之访问修饰符: java中一共有四种访问修饰符号,用于控制方法和属性的访问权限(范围): 1.公开级别:public 对外公开 2.受保护级别:protected 对子类和同一个包中的类公 ...

  8. JAVA类成员访问修饰符

    JAVA类成员访问修饰符public,private,protected,默认时的区别 修饰符 当前类 同包 子类 其它包 public √ √ √ √ protected √ √ √ × defau ...

  9. Java中的反射和Java中的访问修饰符

    什么是反射? ①在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性 ②对于任何一个对象,我们都能够对它的方法和属性进行调用 总而言之:它反射Java语言中的一种机制,通过这种机制可以动 ...

最新文章

  1. 希望和等待:目标,欲望和意志
  2. 还原时代原声,AI修复老北京再次火爆全网
  3. java set和get原理_Java线程池的实现原理和使用
  4. Nginx+PHP-FPM——Nginx日志:[Primary script unknown] 网页:[file not found. ]解决方案
  5. ICE学习之C# Java之间通讯
  6. question1 赋值运算操作符
  7. 【论文分享】ACL 2020 信息抽取任务中的新动向
  8. React 单文件上传和多文件上传的封装
  9. 已知X随机变量的情况下,求解Y=G(x)的概率分布函数(只考虑单调的情况)
  10. slam 图像处理 matlab,MATLAB R2020a图像处理和计算机视觉新进展
  11. 基于MATLAB的基础图像分析
  12. Xbox360自制系统GOD包安装教程
  13. python与java-还在纠结选Python还是Java?看完就有数了
  14. java 字符串按小数点分割【问题剖析】
  15. 思科华为H3C锐捷交换机路由器AP等console线
  16. ZLG-IP中ARP协议存在BUG
  17. Eclipse 修改注释的 date time 日期时间格式,即${date}变量格式
  18. 图文:eclipse中SVN分支合并到主干
  19. 网站改版更换服务器seo,网站改版、更换域名、换空间如何通知百度 | 衡水SEO老刘...
  20. php购物网站毕设ppt,购物网站设计与实现毕业设计展示PPT.ppt

热门文章

  1. 使用循环计算斐波那契数列
  2. C/C++字节对齐总结
  3. 树分治树链剖分相关题目讨论
  4. mongodb--GridFS
  5. webservice jsonp格式调用
  6. WCF学习- 体系结构
  7. Alpha Blending a Bitmap 失败 原因
  8. Sql Server中Case函数的使用(上篇)----转载
  9. C#实现HTTP协议:多线程文件传输
  10. gj12-2 协程和异步io