java私有属性和私有方法_Java私有,受保护,公共和默认
java私有属性和私有方法
您是Java程序员,所以您知道我在说什么。 public
修饰符使方法或字段可从应用程序中的任何位置访问。 那是简单的部分。 但是,您能告诉我protected
和包私有的区别吗? (提示:如果您未在方法或字段前面编写任何访问修饰符,则package private是对方法或字段的保护。请注意!我说谎!)我的采访经验是很多人不知道。 对于Java开发人员,我认为这是不可行的吗? 并不是的。 即使您不知道,您仍然可能是一名优秀的Java开发人员。 也许现在您将在某个地方查找它。 也许Java规范是一个很好的入门文档。
我会告诉你一些更有趣的事情。
从字面上看,没有一个候选人知道什么是
private
。 而您,阅读本文,也不知道。
好的,这很挑衅。 您可能是少数几个碰巧用这种无用信息填充大脑的人之一,甚至您可能已经阅读了Java规范。
大多数Java程序员认为私有方法和字段只能从类内部访问。 有些人甚至认为只能从对象实例内部进行。 他们相信:
public class PrivateAccessOtherObject {public PrivateAccessOtherObject(int i) {this.i = i;}private int i;void copyiTo(PrivateAccessOtherObject other){other.i = i;}
}
不可能。 (它是。)
那么什么是私人的?
最近的JLS指出, 只能在包含成员或构造函数声明的顶级类(第7.6节)的正文中访问私有类成员或构造函数。
Java规范中的示例并不是最好的描述规则。 也许那只是一个简单的例子。 像这样的东西可能更好地解释了这个概念:
public class PrivateFieldsContainingClass {private static class NestedClass {private int i;}private NestedClass nestedClassInstance = new NestedClass();void set(int i) {nestedClassInstance.i = i;}int get() {return nestedClassInstance.i;}
}
可以从封闭类以及NestedClass
内部访问字段i
。 这个例子也很简单,但更使规范例子错过了。 这种可能性有什么实际用途? 并不是的。
额外的问题:为什么我说我在说谎?
翻译自: https://www.javacodegeeks.com/2014/08/java-private-protected-public-and-default.html
java私有属性和私有方法
java私有属性和私有方法_Java私有,受保护,公共和默认相关推荐
- python 类 公有属性、私有属性、公有方法、私有方法
python 类 公有属性.私有属性.公有方法.私有方法 #!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Int ...
- java读取属性文件的方法_java读取属性文件的方法
主要有两种: 一是使用Class的getResourceAsStream方法: private static Properties props; private static final String ...
- 封装详解,private,修改私有属性get/set方法,类和对象总结
方法,属性,有参与无参构造函数,对私有属性private的访问get/set方法都在类中:在我们的项目中只有一个实现类main,在main中将类实例化为对象,通过对象来调用类中的方法,属性,有参与无参 ...
- 【Java SE 代码回顾】——day05_私有属性、公有方法、switch
这个系列是对javaSE课程代码的回顾,所有Demo都是亲自动手实现的,并做了小小的change,为了方便自己理解和后期复习,代码里加了大量的注释.现对所有知识点的代码进行复习整理,进一步理解.完善代 ...
- java中私有变量和方法_Java 私有变量和私有方法
作者: Jakob Jenkov 译者:叶文海(yewenhai@gamil.com) 内容索引 访问私有变量 访问私有方法 在通常的观点中从对象的外部访问私有变量以及方法是不允许的,但是 Java ...
- python私有属性怎么定义_Python中私有属性的定义方式
Python没有类似于Java的private关键字, 但也可以为类定义私有属性. 只需将属性命名变为以__开头, 例如 __field. 示例代码: class Vector2D(object): ...
- java中容易混淆的方法_java中容易混淆的概念
java中容易混淆的概念 1. 谈谈 final, finally, finalize 的区别final-修饰符(关键字)如果一个类被声明为 final,意味着它不能再派生出新的子类,不 能作为父类被 ...
- java測試動態方法_java反射学习
反射的核心Class类 Class类是一个特殊的类,不能手动创建,只能由jvm来创建. jvm在类加载时会为每个类生成一个与之对应的Class对象在Java堆中(且每个类只会有一个对应的Class对象 ...
- java实现线程同步的方法_Java实现线程同步方法及原理详解
一.概述 无论是什么语言,在多线程编程中,常常会遇到多个线同时操作程某个变量(读/写),如果读/写不同步,则会造成不符合预期的结果. 例如:线程A和线程B并发运行,都操作变量X,若线程A对变量X进行赋 ...
最新文章
- 上海交大发布 MedMNIST 医学图像分析数据集 新基准
- arraycopy用法_Java复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan...
- By.Xpath快速定位页面元素常用方法
- 区块链BaaS云服务(14)华大BGI区块链“Baas接口“
- [deviceone开发]-数据绑定示例
- 四轴PID控制算法详解(单环PID、串级PID)
- 给谷歌输入法增添自定义词组,提高输入效率
- PHP-Windows下搭建PHP-MSF环境【原创】
- Pytorch 为什么每一轮batch需要设置optimizer.zero_grad
- 这届年轻人,连泡面也买不起了
- Java程序实现密钥库的维护
- ASIHTTPRequest報錯解決辦法
- linux使用触摸屏驱动程序,Linux触摸屏驱动
- html通过拼音首字母定位,javascript实现通过拼音首字母快速选择下拉列表
- 【Python】Python爬虫豆瓣电影数据并进行数据分析
- 外包网站建设需要注意什么
- DayDayUp:平均每篇文章1毛! 本博主自2020年6月1日起,如有任何问题可在博客贴吧留言或者私信博主(包括并不限于GUI软件编写、安装及编程语言中的bug、AI算法设计等),非诚勿扰!
- vue获取地址栏参数值
- 分享 | 带来全新交互体验的『支付宝AR』技术大解密
- matlab里面floor是什么意思,matlab中的fix、round、floor、ceil的区别与含义