
正文
java访问权限学习代码 java 访问权限
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Java访问权限控制中,友好变量或方法能在类内部、本包中使用,不能在子类及包外使用,但请看下面代码:
说明你对成员的封装等级一块的知识没有搞懂。
首先java关于成员的封装关键字有三个:public、protected和private。
但是成员的封装等级有四种,除了上面三个外,还有一个是没有加“封装”关键字的等级。
就像你在class A中的int a一样。
这个int a可以是 public int a;或者protected int a; 或者private int a;还可以直接int a;
这代表了这个成员的四种封装等级。
程序中的a没有加关键字,则是一种被称为“package”的等级,这种等级的可见度是class和package,但是对于subclass是不可见的。
所以程序中,java1虽然继承了A类,但是父类中的成员a已经在子类中变为不可见的了,所以你在子类中用到A中的a就错了:System.out.println(one.a);
修改的办法是将class A改为:
class A {
public int a = 10; //public和protected都可以
}
相关问答
Q1: 什么是Java类的访问权限?
在解释访问权限控制之前java访问权限学习代码,先看一个场景。
在学生信息管理系统中,有两个类,分别是学生类和课程类,课程类提供java访问权限学习代码了课程表和课程安排两个方法,学生类可以调用课程类提供java访问权限学习代码的课程表查看课程安排,但不能调用课程安排方法,该如何处理,此时就可以利用访问权限来进行控制。
在Java中,提供了四种访问权限控制:默认访问权限(包访问权限),public,private以及protected。
默认访问权限(default):即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
private: 对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护的”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。下表列出了四种访问权限的控制粒度:
例1:
Main.java:
package com.cxh.test1;
public class Main {
/**
* @param args */
public static void main(String[] args)
{
// TODO Auto-generated method stub
People people = new People("Tom");
System.out.println(people.getName());
}
}
People.java
package com.cxh.test1;
class People { //默认访问权限(包访问权限)
private String name = null;
public People(String name)
{
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name)
{
this.name = name;
}
}
从代码可以看出,修饰People类采用的是默认访问权限,而由于People类和Main类在同一个包中,因此People类对于Main类是可见的。
Q2: 一道java题!!!求代码!!!构建一个具有4种访问权限的成员变量和成员方法的类test,并定义一个该类的
四种访问权限:public private protected default
你需要创建四个类
package1:Parent,Son ,Demo1
package2:Demo2
如果你用IDE的话不用编译就会报错的,如果用javac编译就会报错的
访问权限课本上肯定有的:
访问权限 类 包 子类 其他包
public ∨ ∨ ∨ ∨
protect ∨ ∨ ∨ ×
default ∨ ∨ × ×
private ∨ × × ×
Q3: Java 如何实现仅在一个.java内的访问权限?
1、私有权限(private)
private可以修饰数据成员java访问权限学习代码,构造方法java访问权限学习代码,方法成员java访问权限学习代码,不能修饰类(此处指外部类java访问权限学习代码,不考虑内部类)。被private修饰java访问权限学习代码的成员,只能在定义它们的类中使用,在其他类中不能调用。
2、默认权限(default)
类,数据成员,构造方法,方法成员,都能够使用默认权限,即不写任何关键字。默认权限即同包权限,同包权限的元素只能在定义它们的类中,以及同包的类中被调用。
3、受保护权限(protected)
protected可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部类,不考虑内部类)。被protected修饰的成员,能在定义它们的类中,同包的类中被调用。如果有不同包的类想调用它们,那么这个类必须是定义它们的类的子类。
4、公共权限(public)
public可以修饰类,数据成员,构造方法,方法成员。被public修饰的成员,可以在任何一个类中被调用,不管同包或不同包,是权限最大的一个修饰符。
java访问权限学习代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 访问权限、java访问权限学习代码的信息别忘了在本站进行查找喔。








