java复习-对象与类

来源:互联网 发布:易方平板 知乎 编辑:程序博客网 时间:2024/06/16 06:03

类之间的三种关系:依赖、聚合(关联)、继承

其中依赖可以理解为一个类的方法操作另一个类的对象,我们应该尽可能地减少依赖,降低耦合度;聚合,意味着一个类的对象包含另一个类的对象

 

一个对象变量并有实际包含一个对象,它仅仅引用一个对象,new操作符返回的就是一个引用而已

 

时间点类Date,日历表示法的GregorianCalendar(Calendar)

CregorianCalendar提供年月日构造一个特定的日历对象new GregorianCalendar(1888,10,12),其中月从0开始算,也就是10代表11月,为了混淆,可以使用带有的常量,比如Calendar.DECEMBER

日历的作用是提供某个时间点的年月日等信息,比如在用new Calendar获得对象后,可以使用对象的.get(Calendar.MONTH),就可以返回一个整型的数字,也可以使用add(Calendar, 3)表示时间后移3个月,负数表示前移,也可以用setTime和getTime设置和返回Date对象

 

*不要编写返回引用可边对象的访问器方法,这会破坏封装性,可以使用对象的.clone()返回一个副本

 

*一个类的方法可以访问所属类的所有对象的私有数据,重点的是同一类型的对象之间

 

使用final修饰一个实例域时,表明在构建对象时必须初始化这样的域,且之后不能在修改,也没有对应的set方法,但是当final用于修饰对象的引用时,表明在构建对象时,当指定了引用之后,引用的值不能改变,但是指定的对象是可以改变的

 

如果将域定义为static,这个域属于类,不属于对象,无论创建多少个对象,这个域只有一个,所有的对象共享一个这样的域,可以使用对象来引用这个域,但是推荐是使用类名来引用

 

类的常量域是可以使用public来修饰的,因为使用了final修饰,它本身是不可变的

 

this表示的是当前方法的隐式参数,隐式参数是指在调用时,“.”的前面的对象名,而在使用static修饰方法时,表示这个方法是没有隐式参数的,它可以使用类名来调用,需要特别注意的是,static修饰的方法属于类,不属于对象,所以它不能够去访问类中的实例域,但是可以访问类中的静态域;this的另外一种含义是调用同一个类中的另外一个构造函数

 

每个类都可以有main方法,这是一种对类进行单元测试的技巧,当有镶嵌类的main时,内部的main是不会执行的

 

Java的方法里的参数是按值传递的,传递引用本质上也是按值传递的

 

重载的依据:相同的类名,不同的参数,对于返回类型不做依据

 

*如果给类提供了至少一种构造方法时,那么系统本来会给我们默认设置的构造方法就会无效

 

当对于所有对象,某个域的值都是默认某个值时,可以直接使用声明并赋值的方式

 

初始化块:使用{}包括起来,在对象的构造中,这些块就会被执行,算是上一条笔记内容的扩展版吧,它的执行先于构造函数

当使用static修饰静态的初始化块时,这些语句会在类被加载的时候就执行了,比如内容提供器中初始化uri一样

 

使用随机数的简单方法:用new Random()创建一个随机数对象,然后使用自带的.nextInt(指定的上限值)获得从0到这个上限值减1的随机数

 

使用的主要原因是确保类名的唯一性;嵌套包之间的类名没有任何关系

一个类可以使用所属包中,存在的所有的类,以及其他包中的公有类

引进其他包种的类的2种方式,一个是使用完整的包名为前缀,一个使用import引进包

导入包使用*,除了java为前缀的包,比如java.*

当引入的包存在和本类成员命名冲突的时候,可以使用加前缀来区别开

如果一个类的开头指定了包名,但是本身不在那个目录中,虽然编译会通过,但是最后的执行是会报错的

 

对于类而言,private是用来指定类是否可以被跨包调用,如果有这个标志,那么类只能是被同一个包内的类使用,而对于类的成员而言,private是用来标志是否可以被跨类调用,如果给定了这个标志,意味着这个成员只能在类的内部使用,而如果不加任何作用域的关键字,包括类为私有的情况下,它可以被包中的所有方法访问,也就是说,java默认类为private,也就是只能在包内被调用,而内部成员默认为跟随类的默认形式,可以理解为public,最好是显示的指定private,不然会破坏封装性

 

类存储在文件系统的子目录中,也可以存在JAR(java归档)文件中,比如第三方库

 

/**  */包揽的注释,会和代码一起保存在一个文档里,它可以使用很多的标志:

在方法前使用:

@param用于参数变量的描述

@return用于返回变量的描述

@throws用于抛出的异常的描述

在类文档中的注释:

@author代码的作者描述

@version程序版本的描述

@since版本区域特性的描述

@deprecated不在使用、建议使用其他类的描述

@see文档连接描述

 

类的设计原则:

1.     一定保存数据私有

2.     一定要对数据初始化

3.     不要在类中使用过多的基本类型,能封装在一起的封装成一个单独的类

4.     职责单一

5.     类名、方法名要能体现职责

原创粉丝点击