JAVA中成员访问控制有四种类型,从不开放 到 开放,分别为 private,default(在成员前或类前不加任何访问控制即为default),protected,public。在一个类的前面只能有两种访问控制类型即default(在类前不加任何访问控制即为default)和public ,同一个包中的类互相访问只要有default这样的访问权限就够了,如果不在同一个包中的类互相访问类前必须要有public这样的访问权限。看下面的代码:
package com.jim;
public class Person {
String name ;
int age;
public Person() {
}
public Person(String name) {
this.name = name;
}
public Person(String name,int age) {
this(name);
this.age = age;
}
//default型:如果成员前没有加任何型,就表示default型或朋友型或包型,表示此成员只能被同一个包中的类的成员访问
void shutName() {
System.out.println("name = " + name);
shutAge();
}
//private型:表示只能被同一个类中的其它成员访问,其它的都不能访问
private void shutAge() {
System.out.println("age = " + age);
}
}
class Dog {
public static void main(String[] args) {
new Person("zhangsan",10).shutName();
}
}
之所以 new Person("zhangsan",10).shutName(); 这样的一句能正常运行,是因为 Person 和 Dog 这两个类在同一个包中(com.jim这个包),所以 public class Person 这里的 public 加不加都无所谓(加在这里是因为下面的Student类和它不在同一个包中,而 Student 类又要extends Person这个类),都不会出错. 这里的 Person 类中的 shutName 方法的访问控制类型就是 default 的(因为在一个类中,可以访问其它同一个包中其它类的 default 型的方法),所以在 Dog类中访问 shutName() 这样的方法不会报错。
再看一个类:这个类在 com.jim.example 这个包中,它和上面的 Person 类不在同一个包中,但它是 Person 类的子类,所以这个类它是 extends 不到 Person 类的 name 、age 成员属性和shutName()成员方法的,因为它们不在同一个包中,所以下面这段代码运行会报错。如果要想达到extends效果,就必须把 Person 类的name 、age 成员属性和shutName()成员方法的访问控制至少变为 protected 的或public 的。
/*
如果父类与子类不在同一个包中,子类想 extends 父类的成员(成员属性和成员方法),
父类的成员访问控制类型必须是 protected 以上,也就是说成员
访问控制类型必须为 protected 或 public 的
*/
package com.jim.example;
class Student extends com.jim.Person {
private String school;
public Student() {
}
public Student(String name,int age,String school) {
super(name,age);
this.school = school;
}
public void shutSchool() {
System.out.println("name = " + name + " age = " + age + " school = " + school);
}
public static void main(String[] args) {
Student student1 = new Student("wangji",26,"上海大学");
student1.shutSchool();
student1.shutName();
}
}
public 就不用多说了吧!如果两个类既不在同一个包中,又没有父子关系,那么在一个类中要访问另外一个类,那么另外的这个类的成员的访问控制就必须为 public 的,其它的访问控制类型都不行。
分享到:
相关推荐
总之,Java中的访问控制是确保代码质量、安全性和可维护性的重要手段。通过理解并熟练应用这些访问控制修饰符,开发者能够更好地设计和实现复杂的软件系统。在编程实践中,我们应该根据需求选择合适的访问控制,以...
本次实验的主要目的是帮助初学者理解和掌握Java中的成员访问控制以及异常处理机制。实验内容包括理解Java包的组织结构、编写带有包结构的程序、掌握包结构下的成员访问控制、以及异常处理的相关知识。 #### 二、...
本篇文章将深入探讨Java中的访问权限控制,并结合提供的源代码进行分析。 1. 访问修饰符概述: Java提供了四种主要的访问修饰符:`public`、`protected`、`default`(无修饰符)和`private`。这些修饰符决定了成员...
本文将深入探讨Java中的访问权限控制,以及其在实际开发中的应用和重要性。 首先,Java提供了四种不同的访问级别,分别是:public、protected、默认(包级私有)和private。这些访问修饰符用于定义类、接口、方法和...
这个"Java访问权限控制源代码.zip"压缩包可能包含了示例代码,用于演示Java中的不同访问修饰符如何工作以及如何实施访问控制。现在,我们将深入探讨Java中的访问权限控制机制。 首先,Java提供了四种访问级别: 1....
JAVA中license控制实现示例 在 Java 中,license 控制是指通过生成和验证数字签名来控制软件的使用权限。这种方法广泛应用于 J2EE 应用中,特别是在系统购买的早期,提供有限制的 license 文件对系统进行限制。 在...
JAVA源码Java访问权限控制源代码JAVA源码Java访问权限控制源代码
这个"基于Java的源码-访问权限控制源代码.zip"文件很可能包含了一些示例,用于演示Java中的访问修饰符如何工作以及如何实现有效的访问控制。让我们深入探讨一下Java中的访问权限控制。 1. 访问修饰符: - **public...
### Java中的访问控制详解 Java作为一种强类型编程语言,提供了丰富的访问控制机制,以确保代码的安全性和封装性。访问控制在Java中主要通过四种访问修饰符实现:`public`、`protected`、`default`(通常称为包访问...
在Java中,我们可以利用Socket类和相关的API来实现TCP连接,并通过设置缓冲区大小来间接控制流量。 1. **Socket类和BufferedInputStream/BufferedOutputStream** Java的Socket类提供了与服务器建立TCP连接的功能。...
在 Java 语言中,访问权限修饰符是指用来限定类、成员变量和方法的可访问范围的关键字。访问权限修饰符分为四种:public、protected、friendly 和 private。每种修饰符都有其特定的访问权限和使用场景。 一、public...
本资源"Java访问权限控制源代码.rar"可能包含了一系列示例,用于展示如何在Java中应用不同的访问修饰符,以及它们如何影响类、方法和变量的可见性。现在,我们将深入探讨Java的访问权限控制。 1. 访问修饰符概述: ...
Java中的Socket编程和多线程技术是实现远程控制的关键。 1. **Java Socket编程**:Java的Socket类和ServerSocket类用于实现客户端和服务器之间的通信。客户端通过Socket连接到服务器的特定端口,建立TCP连接,从而...
Java中的访问控制符是编程中用来限制类、接口、字段和方法访问权限的关键字,它们在面向对象的设计中起着至关重要的作用。访问控制符主要包括`private`、默认(无修饰符)、`protected`和`public`,这些控制符决定了...
本文将深入探讨如何在Java中与USB HID设备进行通信,以及在实际项目中应用的方法。 首先,我们需要理解HID设备是什么。HID设备是USB设备的一种,主要用于人机交互,如键盘、鼠标、游戏控制器等。它们遵循特定的USB ...
本篇将详细介绍如何在Java中实现这一功能,特别是在遇到需要下载证书的情况。 首先,你需要引入Java的HTTPS相关的库,这通常包含在`javax.net.ssl`包中。Java的`HttpURLConnection`类是处理HTTP和HTTPS请求的基础,...
这个"基于Java的实例源码-访问权限控制源代码.zip"文件很可能包含了一些示例,展示了如何在Java中使用不同的访问修饰符来管理类、方法和变量的可见性。以下是对Java访问权限控制的详细解释。 1. **访问修饰符**: ...
总之,通过Java结合RXTX库和ESC/POS指令,我们可以实现对爱普生热敏打印机的控制,从而在各种应用场景中实现灵活的打印需求。这个过程涉及串行通信、数据编码和打印机硬件交互等多个IT领域的知识。
在IT行业中,统计网站的访问量是衡量一个网站活跃度和受欢迎程度的重要指标。这里我们主要探讨如何使用Java,Spring框架以及MySQL数据库来实现对网站的PV(页面浏览量)和UV(独立访客数)的统计。首先,我们需要...