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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- Python动态类型的学习---引用的理解
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树