`
jgnan
  • 浏览: 87488 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

每天简单JAVA教学:Modifier

阅读更多
昨天给大家介绍了怎么进行同一个类里面的方法调用,今天将会给大家说一下modifier以及不同类之间怎么进行方法调用。

首先来说一下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]
  • 在任何类里面通过new Modifier().publicMethod()来访问公共方法
  • 在任何类里面通过new Modifier().protectedMethod()来访问受限方法
  • 在任何类里面通过new Modifier().defaultMethod()来访问默认方法
  • 在任何类里面通过new Modifier().privateMethod()来访问私有方法
  • [/list]
    除了第一点会在所有类中都成功之外,其它的几条在上面几个类的实验中应该都只会在某个类中会成功。

    几个类的意义:
    类名代表意义
    ModifierModifier测试类
    NeighbourModifier的邻居类,和Modifier同处于一个package层级下。
    ChildClassModifier的继承类,继承了Modifier除了标有private和default以外的所有成员
    Foreigner跟Modifier没有任何关系的外类


    好了,在我们结束今天的内容之前,大约预习以下后面的内容:
    在例子里面,我们需要通过new Modifier()来访问Modifier类里面的东西,为什么呢?因为要访问一个类里面非静态(static)的成员,只有在把这个类的实例(instance)创建出来,分配了实际的地址段给它之后,它的成员才有对应的地址段可供访问。这就好比类是一个房子的设计蓝图,上面描述了房子的方方面面,面积啦,房间布局啦等等。但是如果房子一天没起,这些东西都不会具体话,也没办法住人。

    而new Modifier()就好像起房子一样。当然,明天我们说静态方法和恒定方法的时候,会再介绍另一种方法调用的方式。

    另外,关于继承。如果我们的一个类需要有某个类的大部分特点的时候,比如要写一个Apple类,而在此之前已经有一个叫Fruit的类了,而且Apple类含有Fruit的所有特征及一些自己特有的特征。那么在解决这类问题的时候就会用到继承的概念。方法很简单,就是在你的类名后面,使用extends关键字把父类和子类联系起来:
    public class Child extends Parent
    


    好了,今天就到此为止,谢谢大家观看。
    • 大小: 3.2 KB
    分享到:
    评论
    发表评论

    文章已被作者锁定,不允许评论。

    相关推荐

      geohash-java:Geohash的Java实现

      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.zip

      名称:Ajax Modifier -------------------- 版本:1.5.3 作者:ygyooo 分类:其他 -------------------- 概述:此扩展仅覆盖 XMLHTTPRequest 对象中的响应数据以及 fetch 方法。 描述: .建议在不使用时关闭此扩展...

      access-modifier-checker-1.0-sources.jar

      官方版本,亲测可用

      Java Heap Size Modifier:增加/减少Java堆大小的工具-开源

      它是用于增加/减少所选 Java 文件 (.jar) 的 Java 堆大小的工具。 对于某些 Java 应用程序,默认的 Java 堆大小是不够的; 使用此工具,您可以轻松地临时增加一个文件的堆大小。 仅适用于 Windows。

      Quad Chamfer Modifier 1.16

      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

      【IT十八掌徐培成】Java基础第25天-02.declaredMethod-method-Modifier.zip

      File Modifier 1.0(exe可执行文件编辑器)

      File Modifier是一个多功能的EXE文件编辑器。 File Modifier功能:随意提取exe文件图标(与原始图标一致) 克隆任意exe文件图标 克隆任意exe文件版本信息 为exe文件添加区段、设置区段大小 为exe文件修改特征 ...

      Frozen_modifier:freeze_modifier

      Frozen_modifier:freeze_modifier

      onnx-modifier

      这便是onnx-modifier (github)开发的动机。所有的编辑信息将最终汇总,统一送由ONNX Python API处理,得到编辑后的ONNX模型文件。 目前已支持下列操作: 1、删除/恢复节点 2、增加新节点 3、修改节点输入输出名 4、...

      MP3 Quality Modifier v2.51.zip

      MP3 Quality Modifier 可以非常简单直观地改变MP3音乐的bitrate格式以达到优化音质的目的。

      java日常词汇学习

       Access modifier 访问控制修饰符:访问控制修饰符用来修饰Java中类、以及类的方法和变量的访问控制属性。  Anonymous class 匿名类:当你需要创建和使用一个类,而又不需要给出它的名字或者再次使用的使用,就...

      JavaPoetic:JavaPoet简单生成器

      JavaPoet简单生成器。 Square JavaPoet: : 对于JavaPoet示例: package com.example.helloworld ; public final class HelloWorld { public static void main ( String [] args ) { System . out . ...

      3DMax完美倒角插件:Quad Chamfer Modifier For 9-2019.rar

      Quad Chamfer Modifier For 9-2019

      java 面试题

      这是面试中常出现的java面试题 ex:【考题题干】类的设计要求它的某个成员变量不能被外部类直接访问。应该使用下面的哪些修饰符 获得需要的访问控制。 A .public B .no modifier C .protected D .private 【试题...

      BDMV Modifier 2.0

      oppo蓝光机 蓝光原盘文件播放目录修改工具

      PHP正则的Unknown Modifier错误解决方法

      Warning: preg_replace(): Unknown modifier ‘p’ in E:\phpLearn\test.php on line 12 原因是: 在正则模式中,用/做定界符,但正则中也含有/,因此会出现此错误,PHP误当后面的一个中的斜杠是结束的定界符。 解决...

      javapoet-maven-plugin:JavaPoet Maven插件

      一个简单的maven插件,可让您使用生成项目的源。 开发JavaFile Generator 要开发JavaFile生成器, 编写public static方法 仅有一个java.lang.String参数,并且 返回java.lang.Iterable<com> 。 例如: package ...

      java 反射例子 代码

      java.lang.reflect.Constructor; java.lang.reflect.Field; java.lang.reflect.Method; java.lang.reflect.Modifier;

      JAVA程序的总结和提升

       关键字public被称作访问修饰符(access modifier),用于控制程序的其它部分对这段代码的访问级别。  关键字class 表明Java 程序中的全部内容都包含在类中,Java是一种纯面向对象的语言。  一个源文件中至多...

      ModifierTypesJava:在Java上学习简单的修饰符类型

      ModifierTypesJava Java上的简单修饰符类型

    Global site tag (gtag.js) - Google Analytics