- 浏览: 89166 次
- 性别:
- 来自: 广州
最新评论
昨天给大家介绍了怎么进行同一个类里面的方法调用,今天将会给大家说一下modifier以及不同类之间怎么进行方法调用。
首先来说一下modifier。它有四个值:public,private,default,protected.其中,当你不声明modifier的时候默认就为default。所以default不需要写出来。而且关键字default实际上也不是modifier,而是用于指示Annotation的默认值(感觉怪怪的。。)。
这个modifier其实是用于指示一个类的成员的访问策略。就是指示一个类的某个方法,或者字段,更或者是成员类是否可以被外部哪些成员类访问。来看下表:
为了弄明白怎么回事,我们需要做个稍微复杂一点的实验,首先大家创建以下的类:
然后,Modifier.java里面的代码如下:
Neighbour代码:
ChildClass代码:
Foreigner代码:
除了以上的代码外,大家还可以自己做以下实验:
[list=1]在任何类里面通过new Modifier().publicMethod()来访问公共方法
在任何类里面通过new Modifier().protectedMethod()来访问受限方法
在任何类里面通过new Modifier().defaultMethod()来访问默认方法
在任何类里面通过new Modifier().privateMethod()来访问私有方法
[/list]
除了第一点会在所有类中都成功之外,其它的几条在上面几个类的实验中应该都只会在某个类中会成功。
几个类的意义:
好了,在我们结束今天的内容之前,大约预习以下后面的内容:
在例子里面,我们需要通过new Modifier()来访问Modifier类里面的东西,为什么呢?因为要访问一个类里面非静态(static)的成员,只有在把这个类的实例(instance)创建出来,分配了实际的地址段给它之后,它的成员才有对应的地址段可供访问。这就好比类是一个房子的设计蓝图,上面描述了房子的方方面面,面积啦,房间布局啦等等。但是如果房子一天没起,这些东西都不会具体话,也没办法住人。
而new Modifier()就好像起房子一样。当然,明天我们说静态方法和恒定方法的时候,会再介绍另一种方法调用的方式。
另外,关于继承。如果我们的一个类需要有某个类的大部分特点的时候,比如要写一个Apple类,而在此之前已经有一个叫Fruit的类了,而且Apple类含有Fruit的所有特征及一些自己特有的特征。那么在解决这类问题的时候就会用到继承的概念。方法很简单,就是在你的类名后面,使用extends关键字把父类和子类联系起来:
好了,今天就到此为止,谢谢大家观看。
首先来说一下modifier。它有四个值:public,private,default,protected.其中,当你不声明modifier的时候默认就为default。所以default不需要写出来。而且关键字default实际上也不是modifier,而是用于指示Annotation的默认值(感觉怪怪的。。)。
这个modifier其实是用于指示一个类的成员的访问策略。就是指示一个类的某个方法,或者字段,更或者是成员类是否可以被外部哪些成员类访问。来看下表:
名称 | 策略 |
public | 可以供所有其它类访问 |
private | 只能供同一类内部访问 |
default | 可以被同一个package下面的其它类访问 |
protected | 只可以被自己及子类成员访问 |
为了弄明白怎么回事,我们需要做个稍微复杂一点的实验,首先大家创建以下的类:
然后,Modifier.java里面的代码如下:
package modifier; public class Modifier { /** * 公共方法可以供所有其它类访问 */ public void publicMethod(){ System.out.println("Everybody can visit me."); } /** * 默认访问类型方法,可供同一个package的类访问 */ void defaultMethod(){ System.out.println("Default method"); } /** * 受限类型方法,可以供自己或子类访问 */ protected void protectedMethod(){ System.out.println("Hello my child!"); } /* * 私有类型方法,只能被内部调用 */ private void privateMethod() { System.out.println("I'm a selfish guy:p"); } }
Neighbour代码:
package modifier; public class Neighbour { public void visitDefault(){ new Modifier().defaultMethod(); } }
ChildClass代码:
package modifier.child; import modifier.Modifier; public class ChildClass extends Modifier { public void visitProtected(){ protectedMethod(); } }
Foreigner代码:
package modifier.child; import modifier.Modifier; public class Foreigner { public void visitPublic() { new Modifier().publicMethod(); } }
除了以上的代码外,大家还可以自己做以下实验:
[list=1]
除了第一点会在所有类中都成功之外,其它的几条在上面几个类的实验中应该都只会在某个类中会成功。
几个类的意义:
类名 | 代表意义 |
Modifier | Modifier测试类 |
Neighbour | Modifier的邻居类,和Modifier同处于一个package层级下。 |
ChildClass | Modifier的继承类,继承了Modifier除了标有private和default以外的所有成员 |
Foreigner | 跟Modifier没有任何关系的外类 |
好了,在我们结束今天的内容之前,大约预习以下后面的内容:
在例子里面,我们需要通过new Modifier()来访问Modifier类里面的东西,为什么呢?因为要访问一个类里面非静态(static)的成员,只有在把这个类的实例(instance)创建出来,分配了实际的地址段给它之后,它的成员才有对应的地址段可供访问。这就好比类是一个房子的设计蓝图,上面描述了房子的方方面面,面积啦,房间布局啦等等。但是如果房子一天没起,这些东西都不会具体话,也没办法住人。
而new Modifier()就好像起房子一样。当然,明天我们说静态方法和恒定方法的时候,会再介绍另一种方法调用的方式。
另外,关于继承。如果我们的一个类需要有某个类的大部分特点的时候,比如要写一个Apple类,而在此之前已经有一个叫Fruit的类了,而且Apple类含有Fruit的所有特征及一些自己特有的特征。那么在解决这类问题的时候就会用到继承的概念。方法很简单,就是在你的类名后面,使用extends关键字把父类和子类联系起来:
public class Child extends Parent
好了,今天就到此为止,谢谢大家观看。
发表评论
文章已被作者锁定,不允许评论。
-
JAVA简单教程:数据库操作(三)——PreparedStatement和动态SQL
2010-03-12 12:30 8708如果我们的SQL语句是固 ... -
JAVA简单教程:数据库操作(二)
2010-03-10 11:09 2179今天来分析一下上次的 ... -
JAVA简单教程:数据库操作(一)
2010-03-05 16:40 1915最近依然是事情太多,一直无法坚持每天写份blog,对不起大家。 ... -
每天JAVA简单教学:枚举类
2010-02-02 14:41 1559今天给大家介绍一个JDK1.5的新特性:枚举类 先来看看以下 ... -
每天JAVA简单教学:类定义,成员类,抽象类及接口类
2010-01-27 11:58 1611最近忙得快疯掉了,而且着凉了病得好辛苦。。。不过今天还是能抓紧 ... -
每天JAVA简单教学:类型强转
2010-01-19 11:56 7621关于类型,我们说了不 ... -
每天JAVA简单教学:简单数据类型、地址比较和值比较
2010-01-18 11:48 2312昨天说了布朗运算,今天详细解释一下其中的==运算符和Objec ... -
每天JAVA简单教学:布朗运算
2010-01-15 14:46 2295布朗值,就是true和false,对于产生这两个值的运算,就是 ... -
每天JAVA简单教学:基本运算符
2010-01-13 18:09 1096今天来介绍一些基础运算符,先用int整数类型做介绍,最后用St ... -
每天简单JAVA教学:循环语法(二)
2010-01-07 10:07 1542自从JRE升级到1.5以后,java的for循环就更加方便了。 ... -
每天简单JAVA教学:循环语法(一)
2010-01-06 13:32 2096现在开始介绍跟变成有密切关系的Java语法,首先来介绍循环的写 ... -
每天简单JAVA教学:super和this
2010-01-05 11:49 1589因为实在太忙这么多天来都没时间上来写东西,感觉非常对不起大家。 ... -
每天简单JAVA教学:变量
2009-12-28 16:02 1277很抱歉,最近事忙,所以很少有时间上来写东西,希望大家见谅。 ... -
每天简单JAVA教学:类继承,重写、重构及重载,final的用法
2009-12-23 12:25 4042昨天事忙,所以没时间给大家写blog,抱歉一下。 今天说的内 ... -
每天简单JAVA教学:JVM的内存管理,static的用法
2009-12-21 14:41 2618今天的主题是介绍static和final这两个指示器的用法。但 ... -
每天简单JAVA教学:方法的调用
2009-12-17 14:59 1293继续我们的简单教学。 ... -
每天简单JAVA教学:第一个main程序分析
2009-12-16 23:12 1592上次我们轻松地完成了H ... -
每天简单JAVA教学:Hello World!
2009-12-16 00:39 1563以下文章只适合新手,新是很新很新的新。。。。自认对编程和JAV ...
相关推荐
名称:Ajax Modifier -------------------- 版本:1.5.3 作者:ygyooo 分类:其他 -------------------- 概述:此扩展仅覆盖 XMLHTTPRequest 对象中的响应数据以及 fetch 方法。 描述: .建议在不使用时关闭此扩展...
今天我们将深入探讨"Declared Methods"(声明的方法)、"Method"(方法)以及"Modifier"(修饰符)这三个概念,这些都是Java编程中的基础知识,对于理解和编写高质量的代码至关重要。 首先,我们来理解"Declared ...
Modifier and Type Method and Description String toGeoHash(double lng, double lat) 根据经纬度计算 geohash String toGeoHash(double lng, double lat, int level) 根据经纬度转换为指定长度的 geohash GPS ...
标题中的“3DMax完美倒角插件:Quad Chamfer Modifier For 9-2019.rar”指的是一款专为3D Max设计的插件,名为“Quad Chamfer Modifier”,适用于3D Max 2019版本。这款插件主要用于提高三维建模中的倒角效果,帮助...
Java 编程题典型例题 Java 是一种广泛使用的编程语言,它具有平台独立性、面向对象、分布式等特点。下面我们将通过四个典型例题来展示 ...3. Access modifier:Java 中的访问控制权限,用于实现字段和方法的访问控制。
官方版本,亲测可用
implementation 'com.squareup:javapoet:1.13.0' } ``` 2. 创建类:接下来,我们可以使用JavaPoet API来创建类、方法、字段等。例如,生成一个简单的Java类: ```java TypeSpec helloWorldClass = TypeSpec.class...
它是用于增加/减少所选 Java 文件 (.jar) 的 Java 堆大小的工具。 对于某些 Java 应用程序,默认的 Java 堆大小是不够的; 使用此工具,您可以轻松地临时增加一个文件的堆大小。 仅适用于 Windows。
这便是onnx-modifier (github)开发的动机。所有的编辑信息将最终汇总,统一送由ONNX Python API处理,得到编辑后的ONNX模型文件。 目前已支持下列操作: 1、删除/恢复节点 2、增加新节点 3、修改节点输入输出名 4、...
The Quad Chamfer modifier produces all quad chamfers, unlike the normal 3ds Max chamfer which produces a lot of triangles and ngons. It is the successor of the Quad Chamfer maxscript, improving on by...
【BDMV Modifier 2.0】是一款专为OPPO蓝光播放机设计的软件工具,主要用于修改蓝光原盘文件的播放目录结构。在深入理解这个工具之前,我们需要先了解一些基本概念。 蓝光(Blu-ray)是一种高密度的光盘存储格式,...
File Modifier是一个多功能的EXE文件编辑器。 File Modifier功能:随意提取exe文件图标(与原始图标一致) 克隆任意exe文件图标 克隆任意exe文件版本信息 为exe文件添加区段、设置区段大小 为exe文件修改特征 ...
MP3 Quality Modifier是一款专为音频爱好者设计的工具,主要用于调整MP3文件的比特率,以适应不同的播放设备或个人对音质的需求。该软件的版本是v2.51,包含在名为"MP3 Quality Modifier v2.51.zip"的压缩包文件中。...
3. **访问控制修饰符(Access modifier)**:Java中的访问控制修饰符有public、private、protected和默认(无修饰符)。它们用于控制类、方法和变量的可访问性,以实现封装。 4. **匿名类(Anonymous class)**:...
在Java编程语言中,`java.lang.reflect.Modifier`类是一个非常重要的工具,它提供了一系列静态方法来查询关于类、接口、字段和方法的修饰符信息。`Modifier.isInterface(int mod)`方法是其中一个方法,用于判断给定...
### Java 必记单词解析 #### AbstractWindowToolkit (AWT) 抽象窗口工具包 - **定义**:AWT 是 Java 提供的一组用于创建图形用户界面 (GUI) 的类库,它允许开发者创建独立于操作系统的窗口、按钮、菜单等控件。 - *...
### Java名词速查表 #### Abstract class (抽象类) - 抽象类是一种不能实例化的类,主要用于提供一个模板或基础框架供子类继承。它通常包含一个或多个抽象方法,以及实现了一些具体的方法和属性。 - **特点**:不...
25. **JVM(Java Virtual Machine)**:Java虚拟机,负责执行Java字节码。 了解并熟练使用这些词汇,对于提升Java编程技能和理解源码至关重要。通过不断学习和实践,你可以更深入地理解Java的精髓,成为一名优秀的...
《Easy Image Modifier:批量图像处理的利器》 在数字化时代,图像处理已成为日常生活和工作中不可或缺的一部分,无论是个人照片修饰还是商业用途的图像编辑,都离不开高效便捷的工具。"Easy Image Modifier"就是...
11. 类加载器(Class Loader):Java 运行时环境使用类加载器动态加载类到内存中。类加载器负责将类的字节码转换为 Class 对象,并确保类的唯一性。 12. 泛型(Generics):泛型是 Java 5 的新特性,用于提供编译时...