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 接口名称”,也可以不包含这些修饰符,但编译器默认就是这样,显示的包含修饰符主要是为了程序逻辑清晰。

[转]java构造方法的访问修饰符的更多相关文章

  1. 分享知识-快乐自己:java 中的访问修饰符

    1):Java中的访问修饰符: Java面向对象的基本思想之一是封装细节并且公开接口.Java语言采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而向使用者暴露接口,但隐藏实现细节. 访问控制 ...

  2. Java基础——protected访问修饰符探讨

    Java基础——protected访问修饰符探讨 根据官方说法:(如图) protected修饰符是可以修饰其他包中的子孙类的,但是我做了个实验,结果发现了一个有趣的现象! 具体请往下看: packa ...

  3. Java继承和访问修饰符

    继承 概念:为了提取两个类中公共代码,可以使用继承抽取重复性的代码到一个公共类中,这个公共的类称为父类(super class).继承于父类的类称为子类(sub class). 关键字     ext ...

  4. java中的访问修饰符

    Java有四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符.其中package代表缺省的访问权限,具体到代码中就是不写任何修饰符的 ...

  5. JAVA中的访问修饰符和包

    一.JAVA访问修饰符 访问修饰符,用来控制类中成员的可见性 有四个访问修饰符,分别是:default,private,public,protected 1.default(默认):默认权限,不用写的 ...

  6. java类的访问修饰符

    1.java中外部类的访问修饰符有如下四种: public,默认,abstract,final // public,默认,abstract,final. public class Test1 {} c ...

  7. java中的访问修饰符详解

    主要讲述一下java中protected的修饰控制范围. 在叙述protected修饰符使用之前,先来说一下java,可以发现,开发java程序是一个时时刻刻都在编写类.开发类.定义类的过程.类里面可 ...

  8. Java——类的访问修饰符

    1.java中外部类的访问修饰符有如下四种: public,默认,abstract,final // public,默认,abstract,final. public class Test1 {} c ...

  9. java四种访问修饰符及各自的权限

    1.public,即共有的,是访问权限限制最宽的修饰符.被public修饰的类.属性.及方法不仅可以跨类访问,而且可以跨包访问. 2. protected,即保护访问权限,是介于public和priv ...

随机推荐

  1. 关于string的对象引用

    什么都不说了, 一切都在代码里:                         Console.WriteLine(object.ReferenceEquals(c5, c4));  //False ...

  2. 关于如何用Jquery监听鼠标滚轮改变横向滚动条

    $(function(){ if ((navigator.userAgent.indexOf('MSIE') >= 0)){/*判断是否是IE浏览器*/ var scroll_width = 1 ...

  3. Openjudge-计算概论(A)-统计字符数

    描述: 判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多输入第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的字符串每组测试数据之间有一个空行,每行数据不超 ...

  4. HDtune(硬盘检测) V5.5 中文绿色版

    软件名称:HDtune(硬盘检测) V5.5 中文绿色版软件语言: 简体中文授权方式: 免费软件运行环境: Win 32位/64位软件大小: 565KB 图片预览: 软件简介:HD Tune Pro一 ...

  5. C#第六天

    字符串的处理练习: 课上练习1:接收用户输入的字符串,将其中的字符以与输入相反的顺序输出."abc"→"cba" 方法1: string str = " ...

  6. MyBatis 多表联合查询,字段重复的解决方法

    MyBatis 多表联合查询,两张表中字段重复时,在配置文件中,sql语句联合查询时使用字段别名,resultMap中对应的column属性使用相应的别名: <resultMap type=&q ...

  7. html5--基础笔记

    1.对于<a>标签 以前: <h2><a href="index.html">The home page</a></h2> ...

  8. 文本注释系统 + MarkDown

    标记系统: 笔记的要点 题材 缘起 目标 等级: 细节性 事实性 规律 法则 适用范围: 时间.地点.人物.起因.经过.结果,who what where when why how whom 6W1H ...

  9. 基于KNN的相关内容推荐

    如果做网站的内容运营,相关内容推荐可以帮助用户更快地寻找和发现感兴趣的信息,从而提升网站内容浏览的流畅性,进而提升网站的价值转化.相关内容 推荐最常见的两块就是“关联推荐”和“相关内容推荐”,关联推荐 ...

  10. 使用Common.Logging与log4net的组件版本兼容问题

    引用:  http://www.cnblogs.com/shijun/p/3713830.html 近期使用了Common.Logging的ILog接口做日志接口,同时利用其log4net适配器与lo ...