转载自:http://hi.baidu.com/ceoct/item/7e136a2417ba6f896f2cc33c

Java class 中public、protected 、friendly、private的区别

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方法调用时,其他所有方法不能调用该方法

3. 接口(interface)

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

缺省—同一个包中可见

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

接口中的方法只能使用public和abstract修饰符

修饰符的访问范围如下:|        修饰符      |  类  |成员访求|构造方法|成员变量|局部变量||

abstract

抽象的  |  √  |   √          |   -        |   -        |   -       ||

static

静态的     |  -  |   √         |   -        |   √         |   -        ||

public

公共的   |  √   |   √         |   √          |   √          |   -       ||

protected 受保护的

|        |   √         |   √          |   √         |   -        ||

private

私有的   |  -  |   √         |   √           |   √         |   -       ||

synchronized 同步的

|  -  |   √         |   -         |   -         |   -      ||

native

本地的   |  -  |   √          |   -         |   -         |   -      ||

transient

暂时的  |  -  |   -        |   -         |   √           |   -      ||

volatie

易失的   |  -  |   -         |   -         |   √            |   -     ||

final

不要改变的  |  √    |   √          |   -         |   √            |   √       |

1.private :(妻子) 只有自己能用。

2.public :(J女)谁都可以用。

3.protected:(家里的钥匙)只有家人可以用。

4.friendly:(公共客厅) 你和别人合租房子,公共客厅就是friendly 。

在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友。

java class private_Java class 中public、protected 、friendly、private的区别相关推荐

  1. java中public_java中public class与class的区别详解

    以下是对java中public class与class的区别进行了分析介绍,需要的朋友可以过来参考下 在编写类的时候可以使用两种方式定义类:public class定义类: class定义类:如果一个 ...

  2. C++中public protected private的区别

    1. 不考虑继承关系时   本类方法使用 外部使用 private 是 否 protected 是 否 public 是 是 2. 有继承关系时   子类方法使用 外部 private 否 否 pro ...

  3. C++:C++中public protected private关键字用法

    C++:C++中public protected private关键字用法 笔者这里主要针对C++中public protected private关键字做一个较全面的总结.首先public prot ...

  4. JAVA入门级教学之(public class和class的区别)

    目录 JAVA入门级教学之(public class和class的区别) 1.public class 和 class 的区别: 2.public class 类名A{ }的    类名A需要和源文件 ...

  5. C++public、protected和private的区别

    C++public.protected和private的区别 在类中的区别 在继承时的区别 在类中的区别 学习C++这三个关键字是比较基础且常见的,下面先简单介绍下这三个关键字在类内的作用: publ ...

  6. C++中public protected private关键字

    访问权限: public 公共接口 :向外界开放,可通过对象或类名访问 protected 受保护的访问:只向子类开放访问权限 ,不可通过对象访问 private私有 :只有类成员可以访问,外界不可以 ...

  7. abstract类中不可以有private的成员_C++中public、protected、private的区别

    1.访问范围 private:只能由该类的成员函数.友元的成员函数访问,不能被其他类的成员函数访问,即使是该类的对象也不能直接访问 protected:可以被该类中的成员函数访问.子类中的成员函数访问 ...

  8. C++中public,protected,private的区别

    C++中public,protected,private个人总结为两种概念,一个宗旨. 两种概念: 概念一:静态的 在C++中一个类的成员的访问级别可分为public,protected,和priva ...

  9. java println和print_java中的print和println有区别吗

    java中的print和println有区别吗 发布时间:2020-07-01 11:55:01 来源:亿速云 阅读:118 作者:Leah java中的print和println有区别吗?针对这个问 ...

最新文章

  1. [收集] Web服务相关的, 介绍框架(framework)类的论文
  2. Node.js 笔记01
  3. pygame render怎么显示中文_PyGame开发游戏(2D)02.基础图元
  4. UE4的编译配置详解
  5. 佳能g2810打印机扫描怎么用_佳能Canon PIXMA G2810 驱动
  6. 绘图库:Matplotlib
  7. AI头发笔刷_笔刷总是不够用?我们整理精选了1000款笔刷给你
  8. python数据导入spss_spss-数据抽取-拆分与合并
  9. [三星6818]gpio模拟spi信号编写门禁卡识别模块驱动
  10. 复杂问题的知识问答技术介绍
  11. 微软云服务器密码如何重置,微软云密码重置
  12. 如何设置用计算机程序打开方式,WPS安装后怎么设置为文档的默认打开方式的方法...
  13. 2018.8.30 训练小结
  14. Google的几个特别搜索功能(转)
  15. 帝国时代3java_帝国时代3-亚洲王朝
  16. Windows中HWND定义说明
  17. [Linux]tomcat 严重: Could not contact localhost:80. Tomcat may not be running
  18. 基于CTP的程序化交易系统开发
  19. sqlserver数据驱动bao1_自动切换数据源 - 一个人看日出,一个人看夕阳,一个人走路,一个人欢笑 - OSCHINA - 中文开源技术交流社区...
  20. 实验课题——最全手机通信录实现版本(【含注释】848行代码)!!!(包括模糊查询、分类查找、模拟拨号、qsort函数实现排序、文件存储、防误触等功能)

热门文章

  1. birt什么意思中文翻译_ECTN是什么意思
  2. Java自动切表_java_Mybatis自动创建表和更新表结构,最近有小伙伴问我mybatis有没有 - phpStudy...
  3. linux java no x11_在linux下运行javaMail程序报No X11 DISPLAY variable was...
  4. oracle查询慢怎么优化,Oracle查询优化-怎样建立索引优化下面的查询语句啊
  5. linux一个vlan配置多个端口映射,Linux 设置 多ip,多vlan
  6. 天气预测频繁2项集_986天气| 今年冬天比往年更冷?官方回应来了
  7. mac怎么设置默认浏览器 mac默认浏览器设置方法
  8. 搜狐视频如何上传原创视频
  9. java解析vue对象数组,Java数组
  10. JAVA对象集合转化为xml转换_xml转为Map集合以及对象转化为xml