类与对象

类与对象

4.2 封装机制

把对象的行为和数形结合成一个独立的单位,并尽可能隐藏对象的内部细节(信息隐藏)。用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口访问该对象。

  • 封装反映了事务的相对独立性;
  • 使对象以外的部分不能随意存取对象的内部数据

封装的特征:

  • 在类的定义中设置访问对象数据成员和成员方法的权限;
  • 提供一个接口来描述其他对象的使用方法;
  • 其他对象不能直接修改本对象所拥有的属性和方法。

类的严谨定义

[类修饰符] class 类名 [extends 父类名] [implements 接口列表]
{
	数据成员
	成员方法
}
  • 一个类只能继承一个父类,单继承;
  • 一个类可实现多个接口,接口之间用逗号隔开。

类修饰符

无修饰符

如果一个类无修饰符,则只能被同一个包里的类使用

public

可以供其他包中的类使用,在程序中用import语句引用其他包中的public类,在一个程序文件中,只能定义一个public类,否则会报错。

final

不能被任何其它类继承,而其存在的目的有三:

  • 用来完成某种标准功能,使其内容、属性、功能固定下来,形成稳定的映射关系;
  • 在必要的层次上设置最终类,提高可读性;
  • 提高安全性,不能派生子类;
abstract

刻画了研究对象的公有行为特征,提供公共基类,为派生具体类奠定基础。

4.3 数据成员

static修饰的静态数据成员
  • 被保存在类的内存区的公共存储单元,而不是某个对象的内存区中,因此一个类的任何对象访问他时存取到的都是相同的数值;

4.4 成员方法

成员方法的形式看,可将成员方法分为两种:

  • 无参成员方法,

    void printStar(){...}
    
  • 带参成员方法,

    int add(int x,int y){...}
    
成员方法声明格式
[修饰符] 返回值类型 成员方法名(形式参数表) throw [异常表]
{
	说明部分
	执行语句部分
}
方法体中的局部变量
  • 在方法体内可以定义本方法所使用的变量,这种变量是局部变量,他的生存期与作用域是在本方法内。
  • 再方法体内定义变量时,不能加修饰符;
  • 局部变量使用前必须明确赋值,否则编译报错;
  • 在方法内,可以用复合语句定义变量,这些变量值在复合语句中有效,又叫做程序块。
成员方法中的返回值

若方法有返回值,则在方法体内用 return语句指明要返回的值,

return(表达式);

其中表达式可以是变量、常量、对象等,表达式中的数据类型必须与成员方法头中给出的返回值类型一致。

形式参数&实际参数
  • 对于无参方法,没有实参列表,但括号不能省略;

  • 对于带参数的成员方法,实参个数、顺序必须与形式参数一致,数据类型按照Java类型转换规则匹配;

  • 实参可以是表达式;

  • 实参变量对形参变量的数据传递是“值传递”,即只能由实参传递给形参,而不能由形参传递给实参。

原文地址:https://www.cnblogs.com/rrrrraulista/p/11117895.html