Java

xiaoxiao2021-02-28  118

类篇entry1

关键词: 封装; 消息;

封装

class FighterPlane { private String name; private int missileNum; public void setName(String _name) { if(_name != null){ name = _name.trim(); } } public void setNum(int _missileNum) { if(_missileNum > 0 ){ missileNum = _missileNum; } } public void fire(){ if (missileNum>0){ System.out.println(“now fire a missile!”); } else {System.out.println(“No missile left!”);} } }// end class

访问控制

体现封装,则需要掌握访问控制符public、 protected、 private、 “默认”的用法。 在java中这些修饰符可以修饰的地方有3种:

修饰类 修饰类的属性成员(域)修饰类的成员方法 类属性成员方法\类前修饰符public缺省publicABprotectedB或(B+C)B缺省BBprivateDD

类属性成员方法从private到public权限依次增大

访问权限首先看类前的修饰符,当类的修饰符为public时, 则类可以被所有的类所访问(可以import),当为默认时, 则只能为包中的类所访问。在此前提下,再看方法前的修饰符。

类前修饰符为public时,当属性和方法前的修饰符为public时,则该属性可以被所有类访问;当属性和方法前为protected修饰时,对于类定义而言,可以被同包中的类和所有子类访问(子类和父类可以不在同一个包中),也就是B+C范围,但对于对象而言,只能被同一个包的类对象所访问,也就是B的范围;当为默认时,只能被同包中的类所访问(比protected访问权限小);当为private时,只能被本类内部所访问 。

消息

消息的实质就是引用向对象发出的服务请求,是对数据成员 和成员方法的调用,例如 fp.name 和 fp.fire()就是发送消息。

能否发送消息取决于

引用必须引用了特定的对象,否则会在运行是抛出NullPointerException异常。对象必须定义了相应的属性或方法,否则编译不会通过。被访问的属性或方法必须具有可访问的权限。
转载请注明原文地址: https://www.6miu.com/read-42322.html

最新回复(0)