Java基础——关于访问权限的一道例题

一、回顾访问修饰符

==public:被它修饰的类,属性,方法,不仅可以跨类访问,而且可以跨包(package)访问

==private:可以修饰数据成员,构造方法,方法,不能修饰类,被它修饰的成员只能被本类自已访问,不能被子类访问

==protected:可以修饰数据成员,构造方法,方法,不能修饰类,能被本类,同包,或其子类成员访问(如果是子类,可以跨包)

==缺省:不加任何修饰符,只允许同一个包中进行访问

二、代码实例

 1 package dog;
 2
 3 public class Dog {
 4     // 公共的
 5     public void publicMethod() {
 6         System.out.println("publicMethod");
 7     }
 8
 9     // 保护的
10     protected void protectedMethod() { // 被声明为protected的方法,可以被子类继承
11         System.out.println("protectedMethod");
12     }
13
14     // 默认的
15     void defaultMethod() {
16         System.out.println("defaultMethod");
17     }
18
19     // 私有的
20     private void privateMethod() { // 这个方法只可以在类内部被调用
21         System.out.println("privateMethod");
22     }
23 }
1 class T {
2     public static void main(String[] args) {
3         Dog d = new Dog(); // 可以访问
4         d.publicMethod(); // 可以访问
5         d.protectedMethod(); // 可以访问
6         d.defaultMethod(); // 可以访问
7         // d.privateMethod(); //私有的方法,不能被在类外访问
8     }
9 }
 1 //在上例的基础上,演示跨包的情况
 2 package cat; //和dog 包不在一起
 3
 4 import dog.Dog;
 5
 6 public class Cat {
 7     void test() {
 8         Dog dog = new Dog();
 9
10         dog.publicMethod(); // 可以
11         // dog.protectedMethod(); 不可以
12         // dog.privateMethod(); 不可以
13         // dog.defaultMethod(); 不可以
14     }
15 }
 1 //在前例的基础上,演示子类中的访问情况
 2 class NiceDog extends Dog {
 3     void test() {
 4         Dog dog = new Dog();
 5         dog.publicMethod(); // 可以
 6         protectedMethod(); // 被protected修饰的成员,可以被继承过来,并这样调用
 7         // dog.protectedMethod(); 不可以
 8         // dog.privateMethod(); 不可以
 9         // dog.defaultMethod(); 不可以
10
11     }
12 }
时间: 2024-10-30 07:05:41

Java基础——关于访问权限的一道例题的相关文章

2.24 Java基础总结 ①访问权限②static③静态方法④实例初始化块⑤静态初始化块

①访问权限②static③静态方法④实例初始化块⑤静态初始化块一.访问权限 默认是同包protected是有关系的,即同包和不同包的子类private只有本类,public全部   本类   同包 不同包       子类 非子类 子类 非子类 private √         默认(同包) √ √ √     protected √ √ √ √   public √ √ √ √ √ 二.static静态成员变量,类级别,全类共享一个Person.country = "中国":一般用

1.27 Java基础总结 ①访问修饰符访问权限②类和方法的基本声明和使用1.27 Java基础总结 ①访问修饰符访问权限②类和方法的基本声明和使用

1.27 Java基础总结 ①访问修饰符访问权限②类和方法的基本声明和使用 成员变量(属性)①类中添加成员变量 访问修饰符 类型 变量名 private String name ②实例化对象调用类的构造方法类构造对象,Teacher one = new Teacher(): 有static的可以直接调用,因为static是类级别的 ③JavaBean里边一般规则应该有公共的无参构造应该有符合命名规范的get/set方法 ④对象的回收:没有任何引用指向该对象时,GC会回收 主动回收:对象 = nu

Java成员的访问权限控制

Java中的访问权限控制包含两个部分: 类的访问权限控制 类成员的访问权限控制 对类来说,访问权限控制修饰符可以是public或者无修饰符(默认的包访问权限): 对于类成员来说,访问权限控制修饰符可以是public,protected, package private(无修饰符), or private. 以下表格总结了类成员中不同访问权限控制修饰符对应的访问级别:

学java教程之访问权限

学编程吧学java教程之访问权限控制发布了.欢迎大家通过xuebiancheng8.com来访问 java中在使用封装的时候有四种访问权限控制符. public 在任意包的任意类中都可以访问任何方法和属性 protected 在同包或者任意子类中可以访问任意方法和属性 默认控制符 也就是什么访问符都不用,在同包中可以访问 private 在同一类中可以访问属性和方法 以上这几个叫访问控制符,他们的权限从大到小.这几个关键词在java中自始至终都用用到.定要牢记. 更多内容请通过xuebianch

浅析Java中的访问权限控制

浅析Java中的访问权限控制 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下为何需要访问权限控制.考虑两个场景: 场景1:工程师A编写了一个类ClassA,但是工程师A并不希望ClassA被该应用中其他所用的类都访问到,那么该如何处理? 场景2:如果工程师A编写了一个类ClassA,其中有两个方法fun1.fun2,工程师只想让fun1对外可见,也就是说,如果别的工程师来调用ClassA,只可以调用方法fun1,那么该怎么处理? 此时,访问权限控制便可以

Java基础——protected访问修饰符探讨

Java基础——protected访问修饰符探讨 根据官方说法:(如图) protected修饰符是可以修饰其他包中的自损类的,但是我做了个实验,结果发现了一个有趣的现象! 具体请往下看: package com.demo1; public class Demo1 { protected Demo1(){ System.out.println("protected"); } protected void function(){ System.out.println("受保护方

java类的访问权限

1.解析 Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符. private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”.被其修饰的类.属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问. default:即不加任何访问修饰符,通常称为“默认访问模式“.该模式下,只允许在同一个包中进行访问. protect: 介于public 和 private 之间的一种访问修饰符,一般

Java中的访问权限解析

在Java中不同的对象和类拥有不同的访问权限,所以在java中对不同的类和对象进行权限的设置显得尤为重要. java中的权限主要分为四种,public,protect,private,和default在声明类和对象的时候如果没有注明权限则为默认的即(default).下面将对这四种权限仅向简单的解析,部分为网上博主的总结再加上个人总结 1.权限解析Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符.private:

Think in Java(三):访问权限控制

1. 一个java文件中可以有多个类,但只能有一个public的类. 2. 类既不可以是private的,因为这会使得除该类职位,其他任何类都不可以访问它,也不可以是protected,所以对于类的访问权限只能是包访问权限或public.(一个内部类可以是private或protected) 3. 访问权限 public > friendly > protected > private