- 浏览: 87488 次
- 性别:
- 来自: 广州
最新评论
昨天给大家介绍了怎么进行同一个类里面的方法调用,今天将会给大家说一下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 8616如果我们的SQL语句是固 ... -
JAVA简单教程:数据库操作(二)
2010-03-10 11:09 2133今天来分析一下上次的 ... -
JAVA简单教程:数据库操作(一)
2010-03-05 16:40 1866最近依然是事情太多,一直无法坚持每天写份blog,对不起大家。 ... -
每天JAVA简单教学:枚举类
2010-02-02 14:41 1509今天给大家介绍一个JDK1.5的新特性:枚举类 先来看看以下 ... -
每天JAVA简单教学:类定义,成员类,抽象类及接口类
2010-01-27 11:58 1561最近忙得快疯掉了,而且着凉了病得好辛苦。。。不过今天还是能抓紧 ... -
每天JAVA简单教学:类型强转
2010-01-19 11:56 7581关于类型,我们说了不 ... -
每天JAVA简单教学:简单数据类型、地址比较和值比较
2010-01-18 11:48 2248昨天说了布朗运算,今天详细解释一下其中的==运算符和Objec ... -
每天JAVA简单教学:布朗运算
2010-01-15 14:46 2229布朗值,就是true和false,对于产生这两个值的运算,就是 ... -
每天JAVA简单教学:基本运算符
2010-01-13 18:09 1060今天来介绍一些基础运算符,先用int整数类型做介绍,最后用St ... -
每天简单JAVA教学:循环语法(二)
2010-01-07 10:07 1435自从JRE升级到1.5以后,java的for循环就更加方便了。 ... -
每天简单JAVA教学:循环语法(一)
2010-01-06 13:32 2059现在开始介绍跟变成有密切关系的Java语法,首先来介绍循环的写 ... -
每天简单JAVA教学:super和this
2010-01-05 11:49 1541因为实在太忙这么多天来都没时间上来写东西,感觉非常对不起大家。 ... -
每天简单JAVA教学:变量
2009-12-28 16:02 1226很抱歉,最近事忙,所以很少有时间上来写东西,希望大家见谅。 ... -
每天简单JAVA教学:类继承,重写、重构及重载,final的用法
2009-12-23 12:25 3974昨天事忙,所以没时间给大家写blog,抱歉一下。 今天说的内 ... -
每天简单JAVA教学:JVM的内存管理,static的用法
2009-12-21 14:41 2567今天的主题是介绍static和final这两个指示器的用法。但 ... -
每天简单JAVA教学:方法的调用
2009-12-17 14:59 1245继续我们的简单教学。 ... -
每天简单JAVA教学:第一个main程序分析
2009-12-16 23:12 1547上次我们轻松地完成了H ... -
每天简单JAVA教学:Hello World!
2009-12-16 00:39 1508以下文章只适合新手,新是很新很新的新。。。。自认对编程和JAV ...
相关推荐
Modifier and Type Method and Description String toGeoHash(double lng, double lat) 根据经纬度计算 geohash String toGeoHash(double lng, double lat, int level) 根据经纬度转换为指定长度的 geohash GPS ...
名称:Ajax Modifier -------------------- 版本:1.5.3 作者:ygyooo 分类:其他 -------------------- 概述:此扩展仅覆盖 XMLHTTPRequest 对象中的响应数据以及 fetch 方法。 描述: .建议在不使用时关闭此扩展...
官方版本,亲测可用
它是用于增加/减少所选 Java 文件 (.jar) 的 Java 堆大小的工具。 对于某些 Java 应用程序,默认的 Java 堆大小是不够的; 使用此工具,您可以轻松地临时增加一个文件的堆大小。 仅适用于 Windows。
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...
【IT十八掌徐培成】Java基础第25天-02.declaredMethod-method-Modifier.zip
File Modifier是一个多功能的EXE文件编辑器。 File Modifier功能:随意提取exe文件图标(与原始图标一致) 克隆任意exe文件图标 克隆任意exe文件版本信息 为exe文件添加区段、设置区段大小 为exe文件修改特征 ...
Frozen_modifier:freeze_modifier
这便是onnx-modifier (github)开发的动机。所有的编辑信息将最终汇总,统一送由ONNX Python API处理,得到编辑后的ONNX模型文件。 目前已支持下列操作: 1、删除/恢复节点 2、增加新节点 3、修改节点输入输出名 4、...
MP3 Quality Modifier 可以非常简单直观地改变MP3音乐的bitrate格式以达到优化音质的目的。
Access modifier 访问控制修饰符:访问控制修饰符用来修饰Java中类、以及类的方法和变量的访问控制属性。 Anonymous class 匿名类:当你需要创建和使用一个类,而又不需要给出它的名字或者再次使用的使用,就...
JavaPoet简单生成器。 Square JavaPoet: : 对于JavaPoet示例: package com.example.helloworld ; public final class HelloWorld { public static void main ( String [] args ) { System . out . ...
Quad Chamfer Modifier For 9-2019
这是面试中常出现的java面试题 ex:【考题题干】类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修饰符 获得需要的访问控制。 A .public B .no modifier C .protected D .private 【试题...
oppo蓝光机 蓝光原盘文件播放目录修改工具
Warning: preg_replace(): Unknown modifier ‘p’ in E:\phpLearn\test.php on line 12 原因是: 在正则模式中,用/做定界符,但正则中也含有/,因此会出现此错误,PHP误当后面的一个中的斜杠是结束的定界符。 解决...
一个简单的maven插件,可让您使用生成项目的源。 开发JavaFile Generator 要开发JavaFile生成器, 编写public static方法 仅有一个java.lang.String参数,并且 返回java.lang.Iterable<com> 。 例如: package ...
java.lang.reflect.Constructor; java.lang.reflect.Field; java.lang.reflect.Method; java.lang.reflect.Modifier;
关键字public被称作访问修饰符(access modifier),用于控制程序的其它部分对这段代码的访问级别。 关键字class 表明Java 程序中的全部内容都包含在类中,Java是一种纯面向对象的语言。 一个源文件中至多...
ModifierTypesJava Java上的简单修饰符类型