类与对象

来源:互联网 发布:网络道德的原则有 编辑:程序博客网 时间:2024/06/08 07:07

封装:是一种信息隐藏技术

利用抽象数据类型将数据和基于数据的操作封装在一起;
用户只能看到对象的封装界面信息,对象的内部细节对用户是隐蔽的;
封装的目的在于将对象的使用者和设计者分开,使用者不必知道行为实现的细节。

继承:基于已有的类产生新类的机制

是指新的类可以获得已有类(称超类或父类)的属性和行为,称新类为已有类的子类(也称为派生类)
在继承过程中子类继承了超类的特性,包括方法和实例变量;

  • 单继承:一个子类只有单一的直接超类。
  • 多继承:一个子类可以有一个以上的直接超类。

数据成员声明

  • public、protected、private为访问控制符。
  • static指明这是一个静态成员变量(类变量)。
  • fianl指明变量的值不能被修改。
  • transient指明变量是不需要序列化的。
  • volatile指明变量是一个共享变量。

实例变量

  • 没有static修饰的变量(数据成员)成为实例变量
  • 存储所有实例都需要的属性,不同的实例的属性值可能不相同

类变量(静态变量)

  • 用static修饰
  • 在整个类中只有一个值
  • 类初始化的同时被赋值
  • 适用的情况
    • 类中所有对象都相同的属性。
    • 经常需要共享的数据
    • 系统中用到的一些常量值

方法声明

  • public、protected、private控制访问权限。
  • static 指明这是一个类方法(静态方法)
  • final指明这是一个终结方法
  • abstract指明这是一个抽象方法
  • native用来集成java代码和其它语言的代码
  • syschronized用来控制多个并发线程对共享数据的访问

实例方法

  • 表示特定对象的行为
  • 声明时前面不加static修饰符
  • 参数传递:
    • 值传递:参数类型为基本数据类型时
    • 引用传递:参数类型为对象类型或者数组时

类方法:

  • 也称为静态方法,声明时前面需要加static修饰。
  • 不能被声明为抽象的
  • 可以类名直接调用,也可以类名实例调用。

可变长参数

  • 可变成参数使用省略号表示,其实质是数组。
    例如,“String …s” 表示“String[]s”
  • 对于具有可变长参数的方法,传递可变参数的实际参数可以是以0个到多个对象

包与目录

  • 包名就是文件夹名,即目录名;
  • 目录名并不一定是包名。
  • Java自动引入Java.lang包

类成员的访问权限

  • public公有:可以被其它任何方法访问,前提是对类成员所属的类有访问权限。
  • protected 只能被同一类及其子类的方法访问
  • private 只可被同一类的方法访问
  • default 默认 仅允许同一个包内的访问,又被称为包访问权限

this 关键字

  • 如果方法内的局部变量(包括形参)名与实例变量名相同,则方法体内部访问实
    例变量时需要this关键字

对象的自动回收

  • 无用对象
  • 离开iale作用域的对象
  • 无引用指向对象
  • Java运行时系统通过垃圾收集器周期性的释放无用对象所使用的内存
  • Java运行时系统会在对象进行自动垃圾回收前,自动调用对象的finalize()方法
    垃圾回收器
  • 自动扫描对象的动态内存区,对不再使用的对象做上标记以进行垃圾回收
    作为一个后台线程运行,通常在系统空闲时异步地执行

finalize()方法

  • 在类java.lang.Object中声明,因此Java中的每一个类都有该方法:
    protectetd voud finalize() throw throwable
    用于释放资源

  • 类可以覆盖(重写)finalize()方法。
    finalize()方法有可能在任何时候以任何次序执行

覆盖toSting()方法

  • toString()方法 将对象内容转化为字符串对象
    下面的两行代码等价
System.out.prientln(anAccount);System.out.println(anAccount.toString());

如果需要特殊的转化功能,则需要自己覆盖toString()方法:

  • 必须被声明为public;
  • 返回类型为String;
  • 方法的名称必须为toString,且没有参数
  • 在方法体中不要使用输出方法System.out.prientln();

DecimalFormat类

DecimalFormat类在Java.text包中。
在toString()方法中使用DecimalFormat类的实例方法format对数据进行格式化。

0 0
原创粉丝点击