栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java中,方法成为public / private / other是什么意思?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java中,方法成为public / private / other是什么意思?

当一个方法 公开时 ,意味着它可以被其他对象访问

例如:

class David {     // public method, can be use by anyone     public String getName() {         return "David";      } }

该方法

getName
可以被其他类访问,因为它是公共的:

 class Other  {      David davidOne = new David();      String davidsName = davidOne.getName(); //<-- compiles and runs }

优点..您可以从其他地方使用它。

如果方法是 私有的,* 则意味着该方法只能由 同一类的 对象访问 *

例如,在这个新定义中:

class David {     public String getName() {         return "David";     }     // private method... nobody but David's "instances" can use it..      private int getAge() {         return 19;     } }

该方法

getAge
不能被其他类访问,因为它是私有的,如果尝试这样做,编译器会给您一条错误消息:

 class Other  {      David davidOne = new David();      String davidsName = davidOne.getName();       int davidsAge = davidOne.getAge(); //<-- Compiler error, getAge() is not visible }

但是,如果可以 David类中使用它:

class David {     public String getName() {         return "David";     }     // private method... nobody but David's "instance" can use it..      private int getAge() {         return 19;     }      // Here the call to "getAge()" will succeed, because it is visible      // inside the class      public boolean hasSameAgeAs( David otherDavid ) {         return this.getAge() == otherDavid.getAge();     } }

优势?您可以创建一堆方法并将其保持私有状态,从而避免数据损坏或总体上保留封装的对象

关于封装

在OOP(面向对象程序设计)中,其目的是根据现实生活中的对象对软件进行建模。

现实生活中的对象具有(除其他外)属性和访问这些属性的方法。

您想公开其中一些方法,而另一些保持私有。

例如, 人类 有一颗心。但是它并没有暴露给所有人,这很危险。它被 包裹 在我们体内。

如果我们要以真实的 人类 为模型来建模,我们可以将方法声明为:

heartBeat
私有的(因此,没有人可以访问它)

另一方面,采用 公共 方法

getGender
来查找您的 Human 实例是男性还是女性,这将是有用的。

还有其他访问修饰符,例如:“ protected”和受保护的软件包(其没有关键字)

 class David {      // protected method      protected int getBalance() {return 1000000;       }      // package protected or "default" method      boolean knowsOop(){return true;      } }

在那里,该方法

getBalance
只能由
David
实例和
David
子类访问(为子类创建另一个线程)

knowsOop
定义David时,包内的任何人都可以访问该方法。

不用担心这两个访问修饰符,当您了解有关OOP和Java的更多信息时,它们将很有意义。

最后,您应该花时间阅读以下内容:

http://java.sun.com/docs/books/tutorial/java/javaOO/index.html

我希望这有帮助



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496757.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号