Java面向对象入门(2)-访问修饰符

Java访问修饰符–public, protected, private and default

Java提供了四个访问修饰符来设置类,变量,方法和构造函数的访问级别,即publicprivateprotecteddefault。这些访问级别修饰符确定其他类是否可以使用特定字段或调用特定方法。

1. Java访问修饰符

让我们快速地比较一下这些访问修饰符。

  1. public? -随处可见
  2. protected? –可在同一包和子类中访问
  3. default? –仅在同一程序包中可访问
  4. private?–仅可在同一类上使用

可以严格按以下顺序对访问说明符进行排序

公用>受保护>软件包专用(或默认)>专用

1.1. public

公众可以从任何地方访问。可以从任何其他类访问已声明为公共的类,方法,构造函数,接口等。
但是,如果我们尝试访问的公共类位于不同的包中,则仍然需要导入公共类。

public class HelloWorld
{
   private String format;

   public String getFormat() {
      return this.format;
   }
   public void setFormat(String format) {
      this.format = format;
   }
}

在上面的示例中,getFormat()setFormat()方法是公共的,因此可以在任何地方访问它们。

1.2. protected

相同程序包的类和任何程序包中的子类都可以访问Protected。受保护的访问使子类有机会使用helper方法或变量,同时防止无关的类尝试使用它。

public class HelloWorld
{
   private String format;

   protected String getFormat() {
      return this.format;
   }
   protected void setFormat(String format) {
      this.format = format;
   }
}

在上面给出的示例中HelloWorld,变量format是声明的protected,因此可以由存在于同一包中的所有类HelloWorld.java以及存在于其他包中的子类访问。

1.3. default (package private)

默认访问修饰符意味着我们不会为类,字段,方法等明确声明访问修饰符。默认可被同一包的类访问。
请注意,public static final默认情况下,接口中的字段是隐式的,接口中的方法是默认的public

public class HelloWorld
{
   String format;

   public String getFormat() {
      return this.format;
   }
   public void setFormat(String format) {
      this.format = format;
   }
}

1.4. private

private访问修饰符是最严格的访问级别。(最高级)类和接口不能是私有的。私人变量只能在同一类内访问。声明为私有的方法,变量和构造函数只能在声明的类本身内访问。
在上面给出的示例中HelloWorld,变量format被声明为私有,因此没有类可以直接访问它。必须通过公共方法getFormat()和进行访问setFormat()
访问级别以两种方式影响您。首先,当您使用来自另一个来源的类时,访问级别确定您自己的类可以使用那些类的成员。其次,编写类时,需要确定类中每个成员变量和每个方法应具有的访问级别。
局部变量和形式参数不能使用访问说明符。由于根据范围规则,它们本质上是外部无法访问的,因此它们实际上是私有的。
如果其他程序员使用您的类,则要确保不会发生由于滥用而引起的错误。访问级别可以帮助您做到这一点。

2.访问控制级别

访问控制分为两个级别

  1. 类级别 -允许的修饰符是public或package-private(默认)。
  2. 方法级别 -允许的修饰符是public,private,protected或package-private(默认)。

可以使用修饰符声明一个类public,在这种情况下,该类对于所有地方的所有类都是可见的。如果类没有修饰符(default,也称为package-private),则仅在其自己的包中可见。
对于成员,还有两个附加的访问修饰符:privateprotected。private修饰符指定只能在其自己的类中访问该成员。
protected修饰符指定成员只能在其自己的程序包中(与package-private一样)访问,并且只能由其在另一个程序包中的类的子类访问
更多精彩请关注

原文地址:https://www.cnblogs.com/qingmiaokeji/p/12354456.html

时间: 2024-08-07 16:47:05

Java面向对象入门(2)-访问修饰符的相关文章

Java面向对象_包装类访问修饰符

在java中有一个设计的原则"一切皆对象",java中的基本数据类型就完全不符合这种设计思想,因为八种基本数据类型并不是引用数据类型,所以java中为了解决这样的问题,jdk1.5以后引入了八种基本数据类型的包装类. 八种包装类分为两大类型: Number:Integer.Short.Long.Double.Float.Byte都是Number的子类表示一个数字. Object:Character.Boolean都是Object的直接子类. 1 public class Test5 {

Java语言中的-----访问修饰符

day04 Java语言中的----访问修饰符 一.访问修饰符概述: 访问修饰符就是对变量或者是方法或者是类的一个修饰,通过修饰以后实现一些必要的权限,主要是说明类成员如何被使用的作用. 二.访问修饰符 1.访问修饰符有哪些? 访问修饰符总共有8种,本文只先给大家说static和final两个修饰符 1.1.final.修饰常量的 1.2.static.修饰静态的 1.3.abstract. 1.4.native. 1.5.sysnchronized.修饰线程的 1.6.transient. 1

Java杂谈之类的访问修饰符及其他注意点知识

package JavaObject; public class Person { //hand为内部类,内部类的访问修饰符可以任意 //private class hand{} public String name; //protected访问修饰符,对于同一个包或者子类是可以访问到的 protected int sex; //缺省对同一个包或继承子类是可以访问到的但是同一个包里面的子类就访问不到 int age; //私有,Person自己才能访问 private double money;

java中四种访问修饰符

Java中的四种访问修饰符:public.protected.default(无修饰符,默认).private. 四种修饰符可修饰的成分(类.方法.成员变量)   public protected default private 类 √ × √ ×(内部类可以用private修饰) 方法 √ √ √ √ 成员变量 √ √ √ √ 四种修饰符的访问权限 public:对所有类可见 protected:对同一包中的类可见.对同一包及不同包中的子类可见 default:对同一包中的类可见.对同一包中的

JAVA 中的权限访问修饰符(public,protected,default,private )

JAVA中有四个权限访问修饰符:public,protected,default,private 注意:这里讲的是对类中属性和方法的访问权限,并不是类的访问权限 1.default:包访问权限 如果什么也没写,默认为default.当然也可以显式得给出default权限 default修饰的属性和方法,包中的所有其他类对那个成员都有访问权限,但是对于这个包之外的所有类没有访问权限. 2.public: 接口访问权限 public修饰的属性和方法对每个类都是可见的 3.private:类内访问权限

C#关键字、面向对象特点、访问修饰符、数据类型等

new关键字 一.创建对象 (一)在堆中开辟控件,引用类型在堆中 (二)在开辟的堆控件中,创建对象 (三)调用对象的构造函数 二.隐藏父类的成员 this (一)代表当前类的对象 (二)显示调用自己的构造函数 base (一)显示调用父类的构造函数 (二)调用父类的成员 三.面向对象 (一)封装: 1.减少大量的冗余代码 2.封装将一坨很难理解的功能封装起来,但是对外提供一个访问的使用接口 (二)继承: 特性: 1.单根性:一个子类只能有一个父类 2.传递性:爷爷类,爹类,儿子类 作用: 1.我

2.关于java的类的访问修饰符和main方法的声明

最近在看Java core I 对java有了更深一步的了解. Java是一种成长的语言, 从1996年到现在,Java的类库从200多个增长到了4000多个,有个惊人的增长. Java从1.0版本升级到了Java10 第一个问题: 类必须用public(access modifier--访问修饰符)修饰吗? 不用, 第二个问题 main方法必须声明为public吗 是,从Java SE 1.4之后的版本 强制main方法为public的. 否则,几遍编译能通过,也不会运行(即使有静态块也不会执

java中四种访问修饰符区别及详解全过程

客户端程序员:即在其应用中使用数据类型的类消费者,他的目标是收集各种用来实现快速应用开发的类. 类创建者:即创建新数据类型的程序员,目标是构建类. 访问控制存在的原因:a.让客户端程序员无法触及他们不应该触及的部分  : b.允许库设计者可以改变类内部的工作方式而不用担心会影响到客户端程序员  java的四个关键字:public.protected.default.private(他们决定了紧跟其后被定义的东西可以被谁使用) 适用范围<访问权限范围越小,安全性越高>   访问权限   类  

Java中的protected访问修饰符

在某个类中定义的protected 方法和属性和默认权限方法和属性是一样的.比如,某类的protected 方法和属性在包外是不能通过该类实例进行访问的(你能在包外访问一个类的默认权限的方法和属性吗?当然不能),这就是为什么在某对象所在的包的以外的任何 地方,你不可以通过该类的对象引用来调用它的protected 方法和属性,哪怕是在该类的子类中也不可以这样做.在该类包外的子类中能“看到“的只是子类自己继承来的protected 方法和属性,它是不能“看到“它的父类对象的protected方法和