Java进阶

对象集合

  1. 避免人机交互和业务逻辑进行融合,也就是注意解耦

2.注意程序的细节,每个函数的执行可能的结果

3.对象数组中的每个元素都是对象的管理者而非对象本身

4. for循环返回对于对象返回的是引用,对于基本类型是副本

5.能够直接讲对象放到打印中去,因为实现了toString

6 .Map的put时,key相等时,相当于直接修改key相对应的值

Java中有两大种数据类型:基本类型和  引用(非基本类型)。 基本类型中表示数据本身,Java 中共8个基本类型, 如下:
* bool
* char
* byte
* int
* long
* float
* double
* void

其他的类型都为非基本类型,非基本类型的变量保存的是引用,而非对象本省,可以理解为一个指针。

继承

7.子类构造器会自动调用父类的构造器,即使你没有显示的调用父类的构造器
继承体系中变量的初始化的过程:
先初始化父类,然后初始化子类。
8.如果子类和父类中有相同的变量,那么变量共存,在子类中的访问的变量是子类的,在父类中访问的是父类的变量

  • java 的对象变量是多态的,他们能够保存不止一种类型的对象
  • 他们可以保存的是声明类型的对象,或者声明类型的子类的对象
  • 当把子类的对象赋值给父类的变量的时候,就发生了向上造型。
    Java具有静态类型和动态类型,静态类型是编译时期确定的类型,动态类型为运行时确定的类型,其为真实的对象的类型

9 . 关于向上造型:

  • 子类的对象可以赋值给父类的对象

** java中不存在对象对对象的赋值, 仅仅是一个引用的改变,也就是浅拷贝**

** 父类的对象不能赋值给子类的对象(其是由编译器所决定的,编译器会根据静态类型进行报错)

** 但是可以使用强制的cast造型的方式绕过编译器的限制。 但是其正确性必须有程序员自己决定,如果左右真实的类型不匹配,运行时将会报
classCaseException 错误。

对于基本类型的强制转化和引用类型的强制转换
基本类型的强制转换,存储的值直接发生变化,但是相对于引用类型强制转换的时候,仅仅是引用改变了,引用指向的对象不变。

float b=1.5f
int x=(int)b; //
Vechicle v;
Car c= new Car();
v=c; //可以
c=v; //编译错误
c=(Car)v //编译通过,但是运行时会发生classCaseException
编译器不允许父类复制给子类,但是可以通过强制类型转换,绕过编译器。

绑定:

静态绑定和动态绑定:
静态绑定是指在程序编译过程中,把函数(方法或者过程)调用与响应调用所需的代码结合的过程称之为静态绑定。
动态绑定是指在执行期间(非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法
Java中的方法只有final,static,private和构造方法是前期绑定

覆盖

覆盖指之类覆盖父类中的方法,这要求函数签名相同,最好使用@overide标志。

单根结构Object

即所有的类默认继承至object。

object的类
Object类的toString的默认输出是:对象加地址
注意equals的签名中,函数的参数是Object,所以使用时一般需要cast. 前面加上override的时候更加安全

设计原则

  • 消除代码复制,

  • 可复用,可维护,可扩展。

  • 用封装来降低耦合

  • 尽量私有化成员变量

  • 框架+数据提高可扩展性(尽可能的改造)

    其主要的方法是,减少程序的硬编码的数量,尽量使用对象加上框架的方式增加程序的可扩展。其主要的还是先需要查看程序中会有改动的部门。

抽象和接口

抽象函数:表达概念而无法实现代码的函数

抽象类: 表达概念而无法构造出实体的类

修饰符:abstract. 有抽象函数的类一定是抽象类。

抽象类不一定必须含有抽象方法。只要使用abstract修饰符修饰即可。

设计模式

控制反转.

内部类可以认为是外部类的一个成员,作为成员其具有访问其他的成员的权限。当然还有函数的内部类。

匿名类: 在new对象的时候,直接给出类的定义

MVC三层设计模式

异常

异常的处理流程: 当前的环境是否是try环境,否则返回上一个函数

异常最大的好处就是分割了业务逻辑和错误处理代码

异常类的体系

catch匹配的时候 是一种IS-A的关系,也就是父类可以捕捉子类

当异常遇到继承关系时:

当覆盖一个函数的时候,子类不能声明比父类的版本更多的异常,在子类的构造函数中,必须声明父类可能抛出的全部异常,

但是构造函数 可以增加额外的异常,

IO

当将对象通过序列化的方式写入到文件中时,写入到文件中的对象远远不止基本信息,还有其他的一些信息,包括对象的类的信息,这样才可以读出时,重构出相关的对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,463评论 18 399
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,947评论 0 62
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 7,618评论 0 11
  • 1、.java源文件: 一个以”.java“为后缀的源文件:只能有一个与文件名相同的类,可以包含其他类。 2、类方...
    Hughman阅读 5,566评论 1 9
  • 封面:Deli 版权归职场星探所有 第一次见客户,你会聊天吗? “小玉她辞职了,听说是劝退,同事们都很不喜欢她,自...
    米娅C阅读 3,468评论 0 0

友情链接更多精彩内容