此题考察修饰符,函数定义等,故从网上搜罗了下相关资料,总结如下:

类、方法、成员变量和局部变量的可用修饰符

修饰符

成员访求

构造方法

成员变量

局部变量

abstract(抽象的)

static (静态的)

public(公共的)

protected(受保护的)

 

private(私有的)

synchronized(同步的)

native(本地的)

transient(暂时的)

volatie(易失的)

final(不要改变的)

             

 修饰符

Public

可以从其他类中访问

Abstract

本类不能被实例化

Final

不能再声明子类

构造函数修饰符

Public

可以从所有的类中访问

Protected

只能从自己的类和它的子类中访问

Private

只能在本类中访问

/成员变量修饰符

Public

可以从所有的类中访问

Protected

只能从本类和它的子类中访问

Private

只能从本类中访问它

Static

对该类的所有实例只能有一个域值存在

transient

不是一个对象持久状态的一部份

Volatile

可以被异步的线程所修改

final

必须对它赋予初值并且不能修改它

局部变量 修饰符

final

必须对它赋予初值并且不能修改它

方法修饰符

Public

可以从所有的类中访问它

Protected

只能从本类及其子类中访问它

Private

只能从本类中访问它

abstract

没有方法体,属于一个抽象类

final

子类不能覆盖它

static

被绑定于类本身而不是类的实例

native

该方法由其他编程语言实现

asnchronized

在一个线程调用它之前必须先给它加

类的修饰符整合

一.类

类的修饰符:

Public:可以在其他任何类中使用,默认为统一包下的任意类。

Abstract:抽象类,不能被实例化,可以包含抽象方法,抽象方法没有被实现,无具体功能,只能衍生子类。

Final:不能被继承。

二.变量

变量修饰符:

一个类的成员变量的声明必须在类体中,而不能在方法中,方法中声明的是局部变量

1.       可访问修饰符:

2.       static类变量:一个类所拥有的变量,不是类的每个实例有的变量。类变量是指不管类创建了多少对象,系统仅在第一次调用类的时候为类变量分配内存,所有对象共享该类的类变量,因此可以通过类本身或者某个对象来访问类变量。

3.       final常量

4.       volatile:声明一个可能同时被并存运行的几个线程所控制和修改的变量。

实例变量:和类变量对应,即每个对象都拥有各自独立的实例变量。

三.方法:(和变量对象分为实例方法和类方法,并用有无static修饰区别)

类方法:使用static关键字说明的方法

1.第一次调用含类方法的类是,系统只为该类创建一个版本,这个版本被该类和该类的所有实例共享。

2.类方法只能操作类变量,不能访问实例变量。类方法可以在类中被调用,不必创建实例来调用,当然也可以通过对象来调用。

实例方法:实例方法可以对当前对象的实例变量操作,而且可以访问类变量。

方法可以重载,要求:方法名相同,但是参数必须有区别。(参数不同可以使类型不同,顺序不同,个数不同)

方法的返回类型:若无返回类型,则声明为void.

方法中的变量作用域:

1.       成员变量:整个类。

2.       局部变量:定义起到方法块结束为止。

3.       方法参数:整个方法或者构造方法。

4.       异常处理参数:参数传递给异常处理方法。

构造方法:和类同名的方法。为新建对象开辟内存空间后,用于初始化新建的对象。不能用对象显式的调用。

静态初始化器:格式:static{<赋值语句组>}

静态初始化器与构造方法的区别:

静态初始化器

构造方法

对类的静态域初始化

对新建的对象初始化

类进入内存后,系统调用执行

执行new后自动执行

属特殊语句(仅执行一次)

属特殊方法

方法的修饰符:

抽象方法:用abstract修饰,只有声明部分,方法体为空,具体在子类中完成。

类方法:静态方法,用static修饰,

1.       调用时,使用类名作为前缀,而不是类的某个实例对象名

2.       不能被单独对象拥有,属于整个类共享。

3.       不能处理成员变量。

最终方法:用final修饰,不能被子类重新定义的方法。

本地方法:用native修饰的方法,表示用其他语言书写的特殊方法,包括C,C++,FORTRAN,汇编语言等。

四.类成员的访问控制符

即类的方法和成员变量的访问控制符,一个类作为整体对象不可见,并不代表他的所有域和方法也对程序其他部分不可见,需要有他们的访问修饰符判断。

权限如下:

访问修饰符

同一个类

同包

不同包,子类

不同包,非子类

private

protected

public

默认

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

  1. java访问修饰符

    了解面向对象思想的同学们,都知道"封装"这一基本特征,如何正确运用访问修饰符,恰恰能体现出封装的好坏. java访问修饰符有四个: 1)public:访问权限最高,其修饰的类.类变 ...

  2. C#和JAVA 访问修饰符

    JAVA ----------------------------------------------- 访问修饰符        描述 ------------------------------- ...

  3. 详解java访问修饰符

    详解java访问修饰符 为了防止初学者看到因为专业的术语而感觉晦涩难懂,我接下来尽量用生动比喻的说法来解释!首先第一点,我们来讲讲什么叫修饰符!看看这个名称,想想他的意思.修饰符!修饰符!,就是用来修 ...

  4. Java访问修饰符及其访问控制

    java中的访问修饰符,可以看成是人的秘密分享级别.private 个人秘密 ,protected 家族秘密,default(不写修饰符)社区(邻居)秘密(在一个包下的能访问),public 社会秘密 ...

  5. Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...

  6. C#和Java访问修饰符的比较

    访问修饰符对于C#:类 的默认修饰符是 internal(外部类只能被public / internal 修饰)枚举 的默认修饰符是 public 且此类型不允许其它访问修饰符接口 的默认修饰符是 i ...

  7. Java 访问修饰符总结

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

  8. Java 访问修饰符详解

    访问修饰符定义了类.属性和方法的访问权限,Java 中包含四种,访问权限从小到大为 private.default.protected 和 public. public,公共修饰符,被其修饰的类.属性 ...

  9. 《Java基础知识》Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...

  10. Java访问修饰符和三大特征(封装,继承和多态)

    一.访问修饰符基本介绍: java提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围): 1.公开级别:用public修饰,对外公开2.受保护级别:用protected修饰,对子 ...

随机推荐

  1. 扩展UIColor类

    在开发中,UI给出的颜色值有时候是十六进制的,有时候给出的是RGB(255,255,255)这样的形式的,而iOS系统提供的方法中并没有直接传递这两种值返回UIColor对象的,这里自己封装了一个以便 ...

  2. Windows Azure使用必读(转)

    原文:http://www.cnblogs.com/dyllove98/archive/2013/06/15/3137528.html 近些日子帮了不少用户移植应用到了Windows Azure上,在 ...

  3. Ubuntu下gdb远程调试--warning: Could not load vsyscall page because no executable was specified解决方案

    1. 首先安装gdbserver apt-get install gdbserver 2. 编译-g 程序 gcc -g test_gdb.c -o test_gdb 源码如下: #include & ...

  4. Message Forwarding

    [Preprocess] 在使用forwarding机制前,会先经历2个步骤,只有当这2个步骤均失败的情况下,才会激活forwarding. 1.+(BOOL)resolveInstanceMetho ...

  5. 什么是IntelAMT

    IntelAMT 全称为INTEL主动管理技术,该技术允许IT经理们远程管理和修复联网的计算机系统,而且实施过程是对于服务对象完全透明的,从而节省了用户的时间和计 算机维护成本.释放出来的iAMT构架 ...

  6. 时隔3年,再次折腾BlackBerry 8830!

    2010年手头换得8830,之后就是好几番刷机.解SPC.倒腾各种软件..算软件注册码..那个时候记得最难弄的注册码就是crunchSMS.需要运行虚拟机来从内存地址读取注册码..不过黑莓真的很经得起 ...

  7. Vusual C++连接Mysql和从MySql中取出数据的API介绍

    .1 mysql_real_connect() 2.1.1 函数原型: MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const ...

  8. win2008 64位 + oracle11G 64位 IIS7.5 配置WEBSERVICE

    第一个错误: 安装过程依旧是那样简单,但在配好IIS站点,准备连接数据库的时候出错了,以下是错误提示:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更 ...

  9. HDU 5702 Solving Order (水题,排序)

    题意:给定几种不同的颜色和它的权值,按它的权值排序. 析:排序. 代码如下: #include <cstdio> #include <string> #include < ...

  10. android获取手机的所有通讯录的号码和sim卡号码

    ============personer================================================ package com.qgc.cantent.entity; ...