您的位置:首页 > 编程语言 > Java开发

Java对象与类

2015-07-13 14:43 357 查看

对象与类

1、封装的优点

访问器方法(域访问器)

相对于实例域定义为public域,使用访问其方法的优点是:实例域为只读域,一旦通过构造器构造成功后,外界的任何方法都无法对其进行修改,如此可以确保实例域不会收到外界的干扰。


更改器方法(域访问器)

更改器方法的优点是:可以检查更改数据的属性。

有些时候需要设置实例域的值,需要提供:


一个私有的数据域

一个公有的域访问器方法

一个公有的域更改器方法

2、静态域和静态方法

如果将域定义为static,那么每个类只有一个这样的域。而对于实例域,每个对象都有一份拷贝。即使没有对象存在,静态域也存在。它只属于类,而不属于任何独立的对象。

在绝大多数面向对象编程语言中,静态域被成为类域。“static”只是沿用C++的叫法,并没有实际意义。


静态方法

在下面两种情况下,使用动态方法:


当一个方法不需要访问对象状态,其所需参数都是通过显示参数提供。

当一个方法只需要访问类的静态域。

3、 方法参数

在java中方法参数

一个方法不能修改一个基本数据类型的参数(即数值类型和布尔型)
一个方法可以改变一个对象参数的状态
一个方法不能让参数对象引用一个新对象


4、对象构造

重载

多个方法有相同的名字不同的参数是为重载


可以重载的不仅仅是构造方法

方法的签名(signature):方法名以及参数类型。


默认构造器

public Student
{
name ="";
id = 0;
schoolday = new Date();
}


默认构造器:它就会被自动的赋为默认值:数值为零,布尔值为false,对象引用为null


参数名

public Employee(String aName, double aSalary)
{
name = aName;
salary = aSalary;
}


调用另一个构造器

this(arg1, agr2);


初始化块

java初始化数据域的方法:

在构造器中设置值

在声明中赋值

初始化块

首先运行初始化块,然后运行构造函数。

{};//初始化块用大括号包起来
static    //静态初始化块
{
}


对象析构 和finalize方法

C++有显式的析构方法,java有自动的垃圾回收器,不支持析构器。
可以为任意一个类添加finalize方法,finalize方法在垃圾回收器清除对象之前被调用。在实际应用中不要用finalize方法回收任何短缺的资源,因为很难知道这个方法什么时候调用。


5、 包

java允许使用包(package)将类组织起来,借助于包可以方便的组织自己的代码,并将自己的代码和别人的代码库分开管理。

标准的java类库分布在多个包里:java.lang, java.util, java.net。
标准的java包具有一个层次结构。也可以使用嵌套层次组织包。
所有标准的java包都处于java和javax包层次中。

使用包的主要作用是确保类名的唯一性。
sun公司建议以公司因特网域名的逆序作为包名。
对于编译器来说,嵌套的包毫无关系。


类的导入

import


import语句位于源文件的顶部(package语句的后面)

import java.util.* //通配符,导入所有的类。


在发生命名冲突时,增加特定的import语句

import java.util.*;
import java.sql.*;
import java.util.Date; //sql和util都有Date类


import 不仅可以导入类,还可以导入静态方法和静态域。

import static java.lang.System.*;
//于是就可以
out.println("Hello");
exit(0);


另外还可以导入特定的方法或域

import static java.lang.System.out;

导入静态方法和静态域的两个实际作用

算数运算

Math.sqrt(16);
sqrt(16);


笨重的常量

if(d.get(DAY_OF_WEEK)==MONDAY);
if(d.get(Calendar.DAY_OF_WEEK)=Calendar.MONDAY);


将类放入包中

将包的名字放在源文件的开头。


6、文档注释

/**....*/
/**
@param 参数
@return 返回值
@throws 抛出的异常
@author 作者
@version 版本
@since 始于
@deprecated
@see 超链接
@link 超链接


包注释

要产生包注释,就需要在每一个包目录中添加一个名为package.html的文件。

7、类的设计技巧

一定将数据设计为私有

一定要对数据初始化

不要在类中使用过多的基本数据类型

不是所有的域都需要独立的域访问器和域更改器

使用标准格式进行类的定义

一般使用下面的顺序书写类的内容:

公有访问特性部分

包作用域访问特性部分

私有访问特性部分

在每一部分中应当按照下列顺序列出:

实例方法

静态方法

实例域

静态域

将职责过多的类进行分解

类和方法名要体现它们的职责
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 对象