`
jingwuyuan
  • 浏览: 8880 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java核心技术基础知识个人总结之——对象与类

阅读更多
一、类:对象状态的改变必须通过调用方法实现,如果不是,那么封装性遭到了破坏,尽量避免这种情况。
类之间的三种关系:1、依赖:一个类里的方法操纵了另一个类的对象,那么说一个类依赖另一个类。这样意味着一个类对象的改变会导致另一个类产生BUG,所以我们应该让类之间的耦合度最小。2.聚合:一个类的对象包含一些其它类的对象,他们就是聚合的。3.继承:一个类用特殊的语法包含了另一个类的方法,并有自己额外的方法,叫做继承。     

          


二、时间日历对象:以后程序中尽量使用GregorianCalendar类,这个类提供了丰富的日历的操作,并可以用setTime(Date time)和getTime()2个方法同Date对象转换,这个类主要有get和set以及add这3个方法去操作日历的,要操作的内容由Calendar类里的常量指定。
java.text.DateFormatSymbols这个对象主要用来获得当地地区的星期几或月份的名称,其中的方法都是返回名称串的数组。

三、定义类:类里的一个方法可以访问所有属于该类的对象的私有数据(个人感觉破坏了私有数据的封装)。实例代码如下:
class Employee{
  private String name;
  public Employee(String n){
    name=n;
  }
  boolean equals(Employee other){
    return name.equals(other.name);
}

}
这个类可以通过编译,就算有个方法访问了一个对象的私有属性。

最好不要编写返回引用可变对象的访问器方法,这样可以用另一个变量去引用同一个对象,那么可以改变这个对象的状态,从而破坏了封装。如果需要返回一个可变对象的引用,应该首先对它进行克隆,并且返回这个克隆对象的引用。

final:这个修饰符应该用于基本数据类型和不可变的类(类中的每个方法都不会改变类就是不可变的类)的对象,其实表示的就是它是个常量。对于可变的类,使用final修饰符会有混乱,仅仅意味着那个引用是不可变是final的,但是那个对象里的东西是可以更改的。

static: 声明为static的域在类的对象里面只有一份拷贝,所有对象共享它,因为它只属于类,所以就算没有类的任何一个对象,它也存在。静态方法是没有this参数的方法(在一个非静态的方法中,this参数表示这个方法的隐式参数),没有this就不能操作对象,所以不能在静态方法中访问实例域。对象可以调用静态方法,但是静态方法里没有任何对象的信息,不能访问非静态的域,所以结果与对象无关,所以尽量不要用对象调用静态方法。
main:所有的类都可以有一个main方法,常用于对类进行单元的测试。


四、方法参数:java中所有的参数都是拷贝,基本类型就是基本类型值的拷贝,对象引用也不是直接把对象的引用传进去的,而也是对对象的引用进行了拷贝传进去的,一定要注意。



五、对象的构造:重载:类里面有多个方法的方法名相同,但是参数不同便产生了重载,但是返回值不同并能作为方法重载的条件。
默认域初始化构造:如果构造器没有显示地给域赋值,那么就会自动的赋值:数值为0,布尔为flase,对象的引用为null。
由于构造器可以重载,所以在一个构造器里可以用this(参数)调用另外一个构造器,比较有用,可以把公用的都需要初始的东西放在一个构造器里供其他的使用。构造器没有返回值,也不用加上void。
经常要记着调用构造器时,各个部分的顺序,和类加载时静态域的顺序。

java.util.Random:int nextInt(int n)返回一个0到n-1之间的随即整数

finalize:可以为任何一个类添加这个方法,那么在对象在被引用垃圾回收清除对象前会调用这个方法,完成一些其他资源的释放,但是很难知道什么时候会垃圾回收,所以可以调用:System.runFinalizersOnExit(true)能确保JAVA关闭前调用finalize,不过这个方法不安全。


六、包:一个类可以使用所属包中的所有类,以及其他包中的公有类。import语句用来导入包,package语句用来把类放入包,如果没有使用该语句,那么类被放置在一个默认包
静态导入:import static 可以使用导入类里的静态方法和静态域,使用这些方法和域的时候必加类名前缀。注意编译器在编译源文件的时候不检查目录结构,但是如果没有声明的包结构,程序无法运行,因为虚拟机找不到类文件。java1.2版本以后明确地禁止加载用户自定义的包名以java.开始的类。

七、类路径:类存储在文件系统的子目录中,类的路径必须与包名匹配。(重要的东西,需要抽空好好研究)


八、文档的注释:javadoc可以由源文件生成一个HTML的文档。所以写好文档的注释可以得到一个很好的HTML文档。
类注释必须放在import语句之后,类定义之前。方法的注释放在方法之前。@用于注释语法的标记,类的标记主要有:author,version,see(类与方法之间的分隔符是#),since,deprecated;方法的标记主要有:param,return,throws。


九、类设计技巧:1、一定将数据设计为私有的,并且不要破坏封装性。2、一定要对数据初始化。3、不要在类中使用过多的基本数据类型,多的话可以放在新类里。4、将职责过多的类进行分解。5、类名和方法名要能够体现他们的职责。
分享到:
评论

相关推荐

    JAVA 核心技术基础篇1

    对于想将Java应用于实际项目中的程序员来说,《Java核心技术——基础知识》修订版是一本权威性的指导书籍。 对于Java SE 6平台的全部更新,这本实用的教程和可靠的参考书通过大量测试过的示例说明了最重要的语言...

    java 核心编程 java

    对于想将Java应用于实际项目中的程序员来说,《Java核心技术——基础知识》修订版是一本权威性的指导书籍。对于Java SE 6平台的全部更新,这本实用的教程和可靠的参考书通过大量测试过的示例说明了最重要的语言特性...

    Java核心技术_第八版(英文原版).part1

    Fundamentals, 8th Edition--《Java核心技术——基础知识》,PDF格式 二、Core Java. Volume II. Fundamentals, 8th Edition--《Java核心技术——高级特性》,chm格式 两部分均为高清晰非影印版,并附含全部源代码...

    Java核心技术_第八版(英文原版).part2

    Fundamentals, 8th Edition--《Java核心技术——基础知识》,PDF格式 二、Core Java. Volume II. Fundamentals, 8th Edition--《Java核心技术——高级特性》,chm格式 两部分均为高清晰非影印版,并附含全部源代码...

    JAVA核心技术

    JSP(TagLib)——>ActionForm——>Action ——> Event——>EJBAction——>EJB ——>DAO——>Database JSP(TagLib) (forward) <——Action <——EventResponse<—— ??Turbine:??主要应用方面:WEB层。??主要应用...

    深入体验Java Web开发内幕

    【内容简介】  本书深刻且通俗地揭示Java Web开发内幕,使您由内而外地明白使用Java进行Web应用开发的全过程——从XML基础知识到HTTP详述及相关体验,从用Tomcat配置Web站点到HttpServletResponse和...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e技术入门、Hibernate高级应用、Spring核心之IoC、...

    轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发chap2

    本书内容主要包括三部分,第一部分介绍Java EE开发的基础知识,包括如何搭建开发环境。第二部分详细讲解了Struts 2.1、Spring 2.5和Hibernate 3.2三个框架用法,介绍三个框架时,通过Eclipse IDE的使用来上手,一...

    领域驱动设计.软件核心复杂性应对之道-5

    ●隔离领域●实体、值对象、服务和模块●一个领域对象的生命周期●将过程表示为领域对象●创建没有副作用的函数●总体轮廓●独立的类●扩展说明●应用分析模式●将设计模式与模型相联系●维护模型的完整性●设计领域...

    领域驱动设计.软件核心复杂性应对之道-3

    ●隔离领域●实体、值对象、服务和模块●一个领域对象的生命周期●将过程表示为领域对象●创建没有副作用的函数●总体轮廓●独立的类●扩展说明●应用分析模式●将设计模式与模型相联系●维护模型的完整性●设计领域...

    jsp应用开发与实践配书源码

    内容包括Web应用开发概述、客户端应用技术基础、搭建JSP网站开发环境、Java语言基础、JSP基本语法、JSP的内置对象、JavaBean技术、Servlet技术、数据库应用开发、EL表达式、JSTL核心标签库、JSP操作XML、JSP与Ajax、...

    asp.net知识库

    技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则...

    领域驱动设计.软件核心复杂性应对之道-2

    ●隔离领域●实体、值对象、服务和模块●一个领域对象的生命周期●将过程表示为领域对象●创建没有副作用的函数●总体轮廓●独立的类●扩展说明●应用分析模式●将设计模式与模型相联系●维护模型的完整性●设计领域...

    领域驱动设计.软件核心复杂性应对之道-4

    ●隔离领域●实体、值对象、服务和模块●一个领域对象的生命周期●将过程表示为领域对象●创建没有副作用的函数●总体轮廓●独立的类●扩展说明●应用分析模式●将设计模式与模型相联系●维护模型的完整性●设计领域...

    领域驱动设计.软件核心复杂性应对之道-1

    ●隔离领域●实体、值对象、服务和模块●一个领域对象的生命周期●将过程表示为领域对象●创建没有副作用的函数●总体轮廓●独立的类●扩展说明●应用分析模式●将设计模式与模型相联系●维护模型的完整性●设计领域...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    在web 2.0应用中,博客(Blog)是web 2.0核心应用中最典型、最流行的代表之一,也是web 2.0技术应用的最直观的表现,是web 2.0精神和理念的具体体现。 1.2. 问题的提出 Blog记载了日常发生的事情和自己的兴趣爱好,把...

    精通JS脚本之ExtJS框架.part2.rar

    《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...

    Spring.3.x企业应用开发实战(完整版).part2

    3.2 相关Java基础知识 3.2.1 简单实例 3.2.2 类装载器ClassLoader 3.2.3 Java反射机制 3.3 资源访问利器 3.3.1 资源抽象接口 3.3.2 资源加载 3.4 BeanFactory和ApplicationContext 3.4.1 BeanFactory介绍 3.4.2 ...

Global site tag (gtag.js) - Google Analytics