private--仅对本类可见
public-- 对所有类可见
protected-- 对本包和所有子类可见
默认friendly--对本包可见,但这是一种不受鼓励的形式。
访问权限修饰符权限从高到低排列是public ,protected ,friendly, private。
java中,friendly这个修饰符并没有显式的声明,在成员变量和方法前什么修饰符也不用,默认的就是friendly。
分三种不同情况来总结。
一 访问权限修饰符修饰成员变量和方法
public:表明该成员变量和方法是共有的,能在任何情况下被访问。
protected:必须在同一包中才能被访问。(说的比较简单,看个例子就明白了)
eg:
Java代码
Java代码
friendly:在这种情况下中,同protected。区别在第二和第三种情况中。
Java代码
假设B与A在同一个包中,则
Java代码
private: 只能在本类中访问。
eg:
Java代码
二 访问权限修饰符修饰类
1,不能用protected和private修饰类。
2,用friendly修饰的类叫友好类,在另外一个类中使用友好类创建对象时,要保证它们在同一包中。
三 访问权限修饰符与继承
这里的访问修饰符指的是修饰成员变量和方法。可以分为两种情况:
1,子类与父类在同一包中
此时只有声明为private的变量与方法不能被继承(访问)。
eg:
Java代码
Java代码
2,子类与父类不在同一包中
此时private与friendly均不能被继承(访问), protected与public可以,protected的一个说法就是希望不是同一个包的类想调用它就必须通过继承来调用,否则不能。
eg:
Father.java
Java代码
Son.java
Java代码
所以,访问权限修饰符权限从高到低排列是public ,protected ,friendly, private。
public-- 对所有类可见
protected-- 对本包和所有子类可见
默认friendly--对本包可见,但这是一种不受鼓励的形式。
访问权限修饰符权限从高到低排列是public ,protected ,friendly, private。
java中,friendly这个修饰符并没有显式的声明,在成员变量和方法前什么修饰符也不用,默认的就是friendly。
分三种不同情况来总结。
一 访问权限修饰符修饰成员变量和方法
public:表明该成员变量和方法是共有的,能在任何情况下被访问。
protected:必须在同一包中才能被访问。(说的比较简单,看个例子就明白了)
eg:
Java代码
class A { protected int weight ; protected int f( int a,int b ) { // 方法体 } }假设B与A在同一个包中,则
Java代码
class B { void g() { A a=new A(); A.weight=100;//合法 A.f(3,4); //合法 } }
friendly:在这种情况下中,同protected。区别在第二和第三种情况中。
Java代码
class A { int weight ; int f( int a,int b ) { // 方法体 } }
假设B与A在同一个包中,则
Java代码
class B { void g() { A a=new A(); A.weight=100;//合法 A.f(3,4); //合法 } }
private: 只能在本类中访问。
eg:
Java代码
class Test { private int money; Test() { money=2000; } private int getMoney() { return money; } public static void main(String args[]) { Test te=new Test(); te.money=3000; //合法 int m=te.getMoney(); //合法 System.out.println("money="+m); } }
二 访问权限修饰符修饰类
1,不能用protected和private修饰类。
2,用friendly修饰的类叫友好类,在另外一个类中使用友好类创建对象时,要保证它们在同一包中。
三 访问权限修饰符与继承
这里的访问修饰符指的是修饰成员变量和方法。可以分为两种情况:
1,子类与父类在同一包中
此时只有声明为private的变量与方法不能被继承(访问)。
eg:
Java代码
class Father { private int money ; int weight=100; }
Java代码
class Son extends Father { viod f() { money=10000;// 非法 weight=100; // 合法 }
2,子类与父类不在同一包中
此时private与friendly均不能被继承(访问), protected与public可以,protected的一个说法就是希望不是同一个包的类想调用它就必须通过继承来调用,否则不能。
eg:
Father.java
Java代码
package com.aaa; public class Father { int height ; protected int money=120; public int weight; protected int getMoney() { return money; } void setMoney(int newMoney) { money=newMoney; } }
Son.java
Java代码
package com.bbb; import com.aaa.Father; public class Son extends Father { void f() { money=10000;//合法 //height=170;//非法,height为friendly修饰的变量 System.out.println(money);//输出结果是10000 //setMoney(300); //非法 int number=getMoney(); //合法 System.out.println(number);//输出结果是10000 } public static void main(String args[]) { Son sss=new Son(); sss.f(); } }
所以,访问权限修饰符权限从高到低排列是public ,protected ,friendly, private。
发表评论
-
myeclipes8.6 反编译插件的安装
2011-04-13 11:25 916如下步骤是在网上找的但是有两个地方有问题: 1 jad的路径问 ... -
JVM的理解
2011-02-16 09:57 653躁动的绵羊的 《深入JVM概要》我觉得写的挺好 可以到他的博 ... -
JVM启动类加载器加载些什么
2011-02-14 10:20 792Bootstrap里加载的是<JAVA_RUNTIME_ ... -
使用异常机制的建议
2010-12-02 17:12 6891 异常处理不能代替简单测试 只在异常情况下使用异常机制 ... -
静态导入
2010-12-01 17:15 642import java.lang.System.*; 可以使用 ... -
初始化块
2010-12-01 16:17 5993种两种初始化数据域的方法: 1 在构造器中设置值 2 在声明 ... -
杂七杂八的记了些笔记 回头看看
2010-11-19 23:28 684经常听人 要向前看 现在我得回头看 -
Java 反射机制的补充(转自 凯旋人生)
2010-11-19 23:01 652Java的反射机制是运行时的环境。 Reflection是j ... -
java反射机制
2010-11-19 22:54 699反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的 ... -
系统基本业务流程
2010-11-19 14:51 712系统的基本业务流程: 在表示层中,首先通过JSP页面实现交互 ... -
ssh生命周期
2010-11-19 11:41 621... -
ssh 的简单认识
2010-11-19 10:47 714【转自 Java虫 】 Struts、spring、Hiber ... -
final类和方法
2010-11-01 16:47 802有时候,可能希望阻止人们利用某个类来定义子类,不允许扩展的类被 ... -
类的设计技巧
2010-11-01 16:31 7041 将数据设计为私有 2 一定要将数据进行私有化 3 不要在类 ... -
静态块
2010-11-01 15:41 669public class NoMain { public ... -
默认域 初始化
2010-11-01 15:00 697如果在构造器中没有显示的给予域 赋初始化值,那么系统会自动的赋 ... -
参数调用
2010-11-01 14:40 678Java程序设计语言总是采用只调用。也就是说,方法得到的是所有 ... -
静态导入
2010-11-01 14:31 717静态导入 一般写法: public class Test { ... -
静态域 和 静态方法
2010-11-01 14:21 9771.静态域 如果将域定义 ... -
Final 实例域
2010-11-01 14:08 1077Final实例域可以将实例域定义为final。 构建对象时必须 ...
相关推荐
"Java 访问修饰符详解" Java 访问修饰符是 Java 编程语言中的一种重要机制,它控制着类、方法和变量的访问权限。访问修饰符可以分为四种:public、protected...正确地使用访问修饰符可以提高代码的安全性和可维护性。
在C#编程语言中,访问修饰符是用来控制类、接口、结构、枚举以及它们的成员(如字段、方法、属性等)的可访问性的关键元素。这些修饰符定义了哪些代码可以访问特定的类型或成员,从而确保了代码的封装性和安全性。...
在C#编程语言中,访问修饰符是控制类、接口、结构、方法、属性、字段等成员的可访问性的关键工具。这些修饰符定义了代码的封装性,是面向对象编程的重要组成部分。以下是对C#中主要访问修饰符的详细说明: 1. **...
Java是一种面向对象的编程语言,其中修饰符和访问修饰符是控制代码访问权限和行为的重要元素。本篇文章将详细介绍Java中的各种修饰符和访问修饰符。 1. **类的访问修饰符** - `public`:任何类都可以访问声明为`...
访问修饰符是用来控制类的成员(如变量、方法)的可见性和访问权限的关键词。常见的访问修饰符有:public、private、protected以及默认(无修饰符)。 1. **public**:公共访问修饰符,标记为public的成员可以在...
Java语言中为了控制方法和成员变量的可见性和访问级别,定义了几种访问修饰符:private, protected, public, 和默认(未修饰)访问权限。这些修饰符决定了不同类之间的访问能力,以保证类的封装性和安全性。接下来,...
- **volatile**: 易失修饰符,用于多线程环境,保证变量在多个线程之间的可见性,但不保证原子性。 - **transient**: 暂时性修饰符,表明变量不参与序列化,不会被持久化到磁盘。 3. **方法的控制修饰符** - **...
Java中的访问修饰符是编程中控制类、接口、方法和字段访问权限的关键元素。它们用于确定哪些代码可以访问特定的程序元素。以下是Java访问修饰符的详细解析: 1. **类的访问修饰符** - **public**:公共类修饰符,...
在C#编程语言中,访问修饰符是控制类、接口、结构、方法、属性、字段等成员的可访问性的重要...通过深入理解并灵活应用C#的访问修饰符,开发者可以更好地控制类及其成员的可见性,从而创建出高效且易于维护的软件系统。
- **描述**:当没有明确指定访问修饰符时,默认访问级别(即没有`public`、`protected`或`private`前缀)被称为`default`。这种情况下,成员仅对同一包内的类可见。 - **用途**:`default`通常用于包内协作,促进同...
### JAVA 访问修饰符及 protected 的几点被人忽略的致命要害 #### 一、概述 在 Java 中,访问控制修饰符用于控制类、方法、变量等成员的可见性。Java 提供了四种不同的访问级别:`private`、`protected`、`默认`...
- **public**:公共访问修饰符,允许任何地方的代码访问该类或成员。这意味着类或方法可以在任何包中被调用。 - **默认(无修饰符)**:当没有明确指定访问修饰符时,类或成员具有包级私有访问权限,只允许在同一...
它们主要分为三类:访问修饰符、类修饰符和方法/变量修饰符。这些修饰符在编写类、接口、方法和变量时起到至关重要的作用,确保代码的封装性、安全性和可维护性。 1. 访问修饰符: - `private`:私有访问修饰符,...
- `public`:公共访问修饰符,允许任何代码访问。 - `private`:私有访问修饰符,仅限于在同一个类内部访问。 - `protected`:受保护访问修饰符,允许同一类及继承类访问。 - `internal`:程序集内访问,只允许...
C#是一种面向对象的编程语言,它通过访问修饰符来...在这个例子中,我们可以看到访问修饰符如何影响类及其成员的可见性和可访问性。理解这些规则对于编写安全、封装良好的代码至关重要,也是软件开发中重要的基础概念。
正确地使用它们可以帮助开发者更好地管理代码的可见性和访问控制,从而构建出更安全、更易于维护的应用程序。需要注意的是,在实际开发过程中,应根据具体的需求选择合适的权限修饰符,以达到最佳的代码组织效果。
本文将深入探讨Java修饰符的基础知识,包括访问修饰符、非访问修饰符以及它们在实际编程中的应用。 首先,我们来看访问修饰符。在Java中,有四种主要的访问修饰符: 1. **public**:公共访问修饰符,允许任何地方...
Java语言中的类修饰符和访问控制符是编程中至关重要的概念,它们决定了代码的组织结构、访问权限和封装性。本实验旨在深入理解和熟练运用这些关键特性。 首先,Java类修饰符包括`public`, `private`, `protected`...