`
hesihua
  • 浏览: 229186 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

java核心技术总结三

    博客分类:
  • java
 
阅读更多

第四章:对象和类

1、在类之间,最常见的关系有:

依赖:即"use-a"关系,例如Order类使用Account类是因为Order对象需要访问Account对象查看信用状态。应该将相互依赖的类减少到最少。它用箭头表示,箭头指向被依赖的那个类,使用虚线。

聚合:即"has-a"关系,也可以说是"关联",聚合关系意味着类A的对象包含类B的对象。它用菱形表示,菱形放在A上

继承:即"is-a"关系,表示特殊和一般的关系。它用三角形表示,如果是实现接口的话,使用的是虚线,三角形放在被继承的类上。

2、并不是所有的类都具有面向对象的特征。例如Math类。

3、对象不会自动被初始化为null,而必须通过调用new或将它们设置为null进行初始化。

      java对象变量与c++的引用类似,这种说法是错误的。在c++中没有空引用,并且引用不能被赋值。可以将java对象看成是c++的对象指针。

4、java将时间与日历类分开是一种很好的面向对象设计。Date类中用来比较2个时间点的方法有before和after,它的getDay,getMonth,getYear方法不推荐。GregorianCalendar日历类有很多方法都可用。比如说构造器就有好几种。

Locale.setDefault(Locale.ITALY)这句话放在main函数的第一行可以看到不同地区的程序输出

  在c++中带有const后缀的方法是访问器方法,默认为更改器方法。

5、主力类:类中没有main方法,有自定义的实例域和实例方法

6、java中必须注意所有的方法中不要命名与实例域相同名的变量。

   在java中必须使用new关键字来创建一个对象,下面的这句话可以在c++中通过。

   Employee number("aaa","001");

7、 a.method(b);在java中a被称为隐式参数,b被称为显式参数。

8、目前我写程序还是会出现的一个问题是: java中规定最好不要返回引用可变对象的访问器方法。因为这样会破坏封装性。

如 public Date gmethod(){return date;} 这个毛病我到目前为止还是会犯。如果要想返回引用可变对象,需要进行克隆。如return (Date)date.clone();

9、final修饰符经常用于基本类型和不可变类。比如String类就是一个final类,即String类中的方法不会改变这个String对象。

10、static域被称为类域,它属于类,而不属于任何独立的对象。如System.out常量就是一个静态的,out的类型是PrintStream。值得注意的是System类的setOut方法可以将System.out设置为不同的流。原来是这个方法是一个本地方法,而不是java语言实现的。本地方法可以绕过java语言的存取控制机制。

可以使用对象来调用静态方法。但是最好还是使用类去调用

   使用静态方法的情形有:

   1、一个方法不需要访问对象状态,其所有参数都通过显示参数提供。如Math.pow

   2、一个方法只需要访问静态域。

  NumberFormat类使用factory方法产生不同风格的格式对象。

在C++中使用::操作符访问自身作用域之外的静态域和静态方法。

    static方法的意义: 最开始是在c中被用的,表示退出一个块后依然存在的局部变量。接着在c中的第二种定义是不能被其他文件访问的全局变量和函数。接着在c++中得到重用表示属于类但是不属于类对象的变量和函数。

11、java程序设计中,方法参数的使用情况:

(1)、一个方法不能修改一个基本数据类型的参数(即数值型和布尔型)

(2)、一个方法可以改变一个对象参数的状态

(3)、一个方法不能实现让对象参数引用一个新的对象。

c++中有值调用和引用调用2种,引用参数标有&符号。

12、方法签名包括:方法名,参数类型,但是不包括返回类型。java允许重载任何方法,而不只是构造器方法。

13、java语言中能够让一个构造器调用另外一个构造器,但是c++中是不允许的。

14、java调用构造器的过程:

(1)、所有的数据域被初始化为默认值

(2)、按照在类声明中出现的顺序,依次执行所有域初始化语句和初始化块

(3)、如果构造器第一行调用了第二个构造器,则执行第二个构造器主体

(4)、执行当前这个构造器的主体

15、java有自动的垃圾回收机制,不需要人工回收内存,所以java不支持析构器。

16、java中可以将类导入进来,然后进行使用,有的时候可以直接在类中写上类名.方法名。但是C++不支持这种方式,它必须使用#include将外部特性的声明加载进来,因为C++编译器无法查看任何文件的内部。在C++中与包机制类似的是命名空间。

17、Window类中有很多域没有加上private关键字修饰。

18、java类的设计技巧:

(1)、一定要将数据设计为私有

(2)、一定要对数据进行初始化

(3)、不要在类中使用过多地基本数据类型:用类代替多个相关的基本数据类型的使用。

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

(5)、使用标准格式进行类的定义

(6)、将职责过多的类进行分解

(7)、类名和方法名要能够体现他们的职责



分享到:
评论

相关推荐

    史上最全的Java核心技术总结.pdf

    史上最全的Java核心技术总结,涵盖了jvm、java核心技术、java并发编程、计算机网络等重点面试知识。通过总结面过阿里、网易、美团、京东、一二面无压力。

    Java核心技术+基础知识+面试汇总大全 完整PDF版

    这是一套Java核心技术基础使用手册,包含Java 基础核心总结、Java核心基础、Java核心知识、Java 基础面试题总结等,内含最强 Java 核心知识点整理及思维导图,需要的朋友可下载试试! Java是一门编程语言,Java发展...

    Java核心技术笔记

    面向对象技术总结 corejava高级特性总结 接口学习总结 异常和内部类 集合框架学习总结....

    Java 核心技术经验总结

    Java 核心技术经验总结

    史上最全的Java核心技术总结.zip

    史上最全的Java核心技术总结.zip

    JavaCore 是对 Java 核心技术的经验总结。.zip

    JavaCore 是对 Java 核心技术的经验总结。.zip

    JAVA核心技术基本总结

    主要是对JAVA技术基础进行全面总结。通过本书可能对JAVA有一个大概的了解。

    Java多线程核心技术讲解

    Java多线程核心技术:理解多线程、在Java中实现多线程、线程的生命周期、线程的优先级、线程的同步、线程的阻塞、守护线程、线程组、线程池、总结。

    Java的基础总结和学习笔记,包括Java核心技术点和常见知识点

    Java的基础总结和学习笔记,包括Java核心技术点和常见知识点。同时提供了Java基础原理的代码实现

    JAVA核心技术

    我也在学习中,就我的学习经验,给出以下小结。(注意:个人观点,仅供参考,欢迎指正。)??1.什么是模式???模式,即pattern。其实就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是...

    java多线程核心技术

    结合大量实例,全面讲解Java多线程编程中的并发访问、线程间通信、锁等最难突破的核心技术与应用实践 Java多线程无处不在,如服务器、数据库、应用。多线程可以有效提升计算和处理效率,大大提升吞吐量和可伸缩性,...

    Java后端技术:分布式核心知识总结.pdf

    包含了JVM、Redis、Zookeeper、RabbitMQ等核心知识总结,帮你快速掌握分布式技术

    Java 基础核心总结 +经典算法大全.rar

    《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else ...

    corejava核心技术知识点总结

    corejava的知识点总结,重点,难点

    corejava基础重要知识点总结

    底层的功臣:JVM = java虚拟机 = 1 + 2 + 3 = 秘书 + 保镖 + 翻译 = 秘书 = 类加载器 = ClassLoader = 保镖 = 字节码校验器 = ByteCode Verifier = 翻译 = 解释执行器 = Interfreter 2:安全 健壮 电力 电信 ...

    Java基础核心总结.pdf

    Java核心基础知识总结,含思维导图,包含Java基本语法,面向对象,接口和抽象类,异常,内部类,集合,泛型,反射,枚举,I/O,注解等Java基础核心知识,总结全面,内容丰富,欢迎下载。 如果对你有用,麻烦点个收藏...

    《Java2核心技术》笔记

    《Java2核心技术》笔记 作者:叶加飞 加拿大.达内科技 (上海中心) 笔记包含以下文档: 面向对象技术总结.pdf corejava高级个性总结.pdf 接口学习总结.pdf 异常和内部类.pdf 集合框架学习总结.pdf GUI和AWT事件模型....

    java学习总结 1.《Java核心技术》.rar

    Java中没有 3、移位操作符右边的参数要先进行模32运算(当左边的变元是long型,则模64),如1<<35 = 1<< 3 = 8。浮点运算的中间结果程度是不一致的。有些处理器适用80bit浮点存储器,有些则使用64bit、80bit。直到...

    尚硅谷Java视频教程_Docker核心技术

    尚硅谷_Docker_DockerFile案例-自定义的tomcat9.avi 29_尚硅谷_Docker_DockerFile案例-自定义的tomcat9上发布演示.avi 30_尚硅谷_Docker_DockerFile小总结.avi 31_尚硅谷_Docker_安装mysql.avi 32_尚硅谷_Docker_...

    springMVC_核心技术总结

    FILTER AOP IOC EXCEPTION LOG4J MULTICONTROLLER 一些知识点总结,对初学者很有启发作用

Global site tag (gtag.js) - Google Analytics