第五章:隐藏实施过程

导入

1.同包下可以直接使用
无标题.png
2.不同包下要导入
无标题.png
3.导入java包
package one;

import java.util.Date;

public class Four {

    public static void main(String[] args){
        Date date = new Date();
        System.out.println(date);
    }
}

package one;

import java.util.*;

public class Four {

    public static void main(String[] args){
        Date date = new Date();
        System.out.println(date);
    }
}

三种访问指示符

0.前言
作用域 当前类 同一package 子孙类 其他package
public
protected ×
friendly(default) × ×
private × × ×

关于protected详细请去 第六章:类再生--->继承部分

1.public 可以在别的类中访问
package one;

public class Test {

    public int a = 100;
    public void sout(){
        System.out.println("测试包");
    }
}
package one;

public class Four {

    public static void main(String[] args){
        Test test = new Test();
        test.sout();
        System.out.println(test.a);
    }
}
测试包
100

Process finished with exit code 0
2.private 只能在自己的类中访问 但是可以提供public函数让别的类中也可以访问
package one;

public class Test {

    private int a = 100;

    public int getA() {
        return a;
    }
}
package one;

public class Four {

    public static void main(String[] args){
        Test test = new Test();
        System.out.println(test.getA());
    }
}
100

Process finished with exit code 0
3.protected 自己和子类可以使用 别的类访问类似于private 通过public 函数访问

1>没有重复变量

package one;

public class ChildATest extends Test {

    public int getSuperA(){
        return super.a;
    }

    public int MyA(){
        return a;
    }

    public void setA(int a){
        this.a = a;
        System.out.println(this.a);
        System.out.println(super.a);
    }
}
package one;

public class Four {

    public static void main(String[] args) {
        Test test = new Test();
        System.out.println(test.getA());

        ChildATest childATest = new ChildATest();
        System.out.println(childATest.getSuperA());
        System.out.println(childATest.MyA());
        childATest.setA(100000);
    }
}
100
100
100
100000
100000

Process finished with exit code 0

2>有重复变量

package one;

public class ChildATest extends Test {

    private int a = 10;
    public int getSuperA(){
        return super.a;
    }

    public int MyA(){
        return a;
    }

    public void setA(int a){
        this.a = a;
        System.out.println(this.a);
        System.out.println(super.a);
    }
}
package one;

public class Four {

    public static void main(String[] args) {
        Test test = new Test();
        System.out.println(test.getA());

        ChildATest childATest = new ChildATest();
        System.out.println(childATest.getSuperA());
        System.out.println(childATest.MyA());
        childATest.setA(100000);
    }
}
100
100
10
100000
100

Process finished with exit code 0

总结:
1.没有重复变量时 a, this.a, super.a 都指的是父亲的a
2.如果子类也定义了a, 那么只有super.a 指的是父亲的a, a, this.a 都是子类的a

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,833评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,464评论 18 399
  • Advanced Language Features 知识点:一. static修饰符 static修饰符可以用来...
    风景凉阅读 3,258评论 0 0
  • 时光如白驹过隙,时间在流光中飞逝,许多人,许多事,都已渐行渐远,唯独留下的,是充满酸甜苦辣的回忆, 20...
    baby洋阅读 3,177评论 0 1
  • 她出现在我必须经过的诗林, 穿着羞赧的衣服扶风掠影。 犯着美丽的错误把缘分挽留。 还天真的咯咯笑, 让我分下心来为...
    罗曼集阅读 2,299评论 0 0

友情链接更多精彩内容