访问控制

可以对Java类中定义的属性和方法进行访问控制----规定不同的保护等级: public、protected、default、private

//仅在类的内部可以访问.
private String email;
//在同一个包内该属性可以被访问.
String major;
//在子类中该属性可以被访问, 且该子类可以跨包
protected int salary;
//访问权限最高, 无论是否在一个包内, 无论是否是子类都可以被访问.
public String name;

访问控制举例(1)

class Parent {
  private int f1 = 1;
  int f2 = 2;
  protected int f3 = 3;
  public int f4 = 4;
  private void fm1() {
    System.out.println("in fm1() f1=" + f1);
  }
  void fm2() {
    System.out.println("in fm2() f2=" + f2);
  }
  protected void fm3() {
    System.out.println("in fm3() f3=" + f3);
  }
  public void fm4() {
    System.out.println("in fm4() f4=" + f4);
  }
}

访问控制举例(2)

class Child extends Parent { //设父类和子类在同一个包内
  private int c1 = 21;
  public int c2 = 22;
  private void cm1() {
    System.out.println("in cm1() c1=" + c1);
  }
  public void cm2() {
   System.out.println("in cm2() c2=" + c2);
  }
  public static void main(String args[]) {
    int i;
    Parent p = new Parent();
    i = p.f2;   // i = p.f3; i = p.f4;
    p.fm2();   // p.fm3(); p.fm4();
    Child c = new Child();
    i = c.f2;   // i = c.f3; i = c.f4;
    i = c.c1;   // i = c.c2;
    c.cm1();   // c.cm2(); c.fm2(); c.fm3(); c.fm4()
  }
}

访问控制分析
父类Parent和子类Child在同一包中定义时:

Java类的设计----访问控制的更多相关文章

  1. Java类的设计----Object 类

    Object类 Object类是所有Java类的根父类如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类 public class Person { ... } 等价于: ...

  2. Java类的设计----关键字super

    关键字super 在Java类中使用super来引用父类的成分 super可用于访问父类中定义的属性 super可用于调用父类中定义的成员方法 super可用于在子类构造方法中调用父类的构造方法 su ...

  3. Java类的设计----多态性及其应用

    多态性及其应用 多态性 多态—在Java中,子类的对象可以替代父类的对象使用一个变量只能有一种确定的数据类型一个引用类型变量可能指向(引用)多种不同类型的对象 Person p = new Stude ...

  4. java类的设计原则

    1.内聚性 类应该描述一个单一的实体,所有的类操作应该在逻辑上相互配合,支持一个连贯性的目标.例如:学生和教职工属于不同的实体,应该定义两个类. 2.一致性 要遵循一定的设计风格和命名习惯.给类.方法 ...

  5. Java类的设计----方法的重写、覆盖

    方法的重写.覆盖 在子类中可以根据需要对从父类中继承来的方法进行改造—覆盖方法(方法的重置.重写),在程序执行时,子类的方法将覆盖父类的方法. 覆盖方法必须和被覆盖方法具有相同的方法名称.参数列表和返 ...

  6. java类和对象的基础(笔记)

    在Java类的设计中,有时希望一个类在任何时候只能有一个实例.这时可以将该类设计为单例模式(singleton).要将一个类设计为单例模式,需要把类的构造方法的访问修饰符声明为private,然后在类 ...

  7. Java 类的热替换 —— 概念、设计与实现

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp71   Java 类的热替换 -- 概念.设计与实现 构建基于 Java ...

  8. Java SE 之 数据库操作工具类(DBUtil)设计

    JDBC创建数据库基本连接 //1.加载驱动程序 Class.forName(driveName); //2.获得数据库连接 Connection connection = DriverManager ...

  9. Java类成员访问控制权限

    类成员访问控制权限 在JAVA中有四种访问控制权限,分别为:private, default, protected, public 1.Private 如果一个成员方法或变量名前使用了private, ...

随机推荐

  1. JavaHbase连接代码示例

    package com.rokid.hbase; import java.io.IOException; import org.apache.hadoop.conf.Configuration; im ...

  2. dvwa 源码分析(二) --- dvwaPage.inc.php分析

    在setup.php中,包含了这个文件,所以这里分析这个文件. <?php if( !defined( 'DVWA_WEB_PAGE_TO_ROOT' ) ) { define( 'DVWA S ...

  3. 一款纯css3实现的翻转按钮

    之前为大家介绍了好多纯css3实现的很漂亮的按钮.今天小编要给各网友再分享一款纯css3实现的翻转按钮.实现中给出了两种的翻转特效,一种是基于按扭的左边缘为中心线,另一种是基于按钮的中间为中心线.我们 ...

  4. 纯css实现进度条效果

    去年7月份做一个公司商城的微信页面(微信用的chrome内核)需要写一个提示返现进度的进度条效果. 一个完整的进度条效果其实可以拆分一下: 一段背景: 一小段的静态的斜纹进度条: 斜纹进度条用线性渐变 ...

  5. 小任务tasklet应用

    一个使用tasklet的中断程序首先会通过执行中断处理程序来快速完成上半部分的工作,接着通过调度tasklet使得下半部分的工作得以完成,但是下半部分何时执行属于内核的工作. 由于tasklet依靠软 ...

  6. Android各版本重要变动记录

    本文来自同步博客. Android M:运行时权限 运行时权限属于比较熟悉的话题不深入展开.除了support包可以让应用完成运行时权限,github上也有好多扩展.用得比较多的是Google官方的E ...

  7. 解决国内经常无法访问Google的方法

    1.可用http://www.google.ws访问. 2.可用https安全协议https://www.google.com.hk访问. 3.也可用http://+谷歌IP访问(http://74. ...

  8. Swift开发教程--设置UIViewController的背景透明

    非常easy的一句代码 self.view.backgroundColor = UIColor.clearColor() 由此联想开来,非常多的控件想设置为背景透明都能够用UIColor.clearC ...

  9. ORACLE11G 字符集更改(这里更改为AL32UTF8)

    ORACLE11G 字符集更改(这里更改为AL32UTF8)更改步骤:1.用sysdba角色用户登录sqlplus: 命令行输入:sqlplus sys as sysdba 2.输入口令,进入sqlp ...

  10. java- ★学习资源★

    何静媛: http://blog.csdn.net/hejingyuan6/article/category/2367993 孤傲苍狼-java基础总结: http://www.cnblogs.com ...