类和对象的高级设置-西安达内培训

类和对象的高级设置

Java中,类的定义与实现必须一次完成,成员、方法都必须定义在类之中。 

1.在Java中,类的定义与实现必须一次完成,成员、方法都必须定义在类之中。

2.方法的局部变量是另一个类。

3this

   The orderthispoint to the current class or object.

this是一个keyword,表示对象中指向自身的一个引用,在实例方法中用来指代当前对象。

this的主要用途:

4private只能被当前public类访问,不能通过其他类访问。

本文章由西安达内编辑整理

5Encapsulation can enhance maintainability

   封装能够增强系统的可维护性。

6.方法签名

   方法签名就是指方法的参数类型、顺序或者个数不一致。

   方法签名不一致,方法就可以被重载。

7.类的初始化过程   

      (1)先对父类初始化(先初始化实例成员,包括属性和代码块<static修饰>,初始化构造器)

      (2)再对子类初始化

      (3)如果有静态成员(静态属性和静态代码块),从父类到子类,先执行类的加载并且初始化这些静态成员。

8Constructor(构造器)

   Constructor can not be inherited.构造器不能被继承。

   Java程序员为对象提供初始化的构造器是一个良好的编程习惯。

   构造器存在的唯一目的就是初始化。

   如果存在多个构造器,就可以被重载。

   如果不指定构造器,JVM就会提供缺省的构造器。

   如果自定义的类中没有构造器,JVM会提供无参的default修饰的构造器。

   如果类中已有带参的构造器,JVM不会提供默认的构造器。

9.继承,是静态复用或者说是类型复用的机制。

   带有继承关系的类的初始化过程

   (1)如果有static属性修饰的代码块,则从父类到子类,先执行类的加载,并且初始化这个静态成员;

   (2)如果没有static成员,则先初始化父类实例成员和构造器,再初始化子类实例成员和构造器。

10.为什么要使用继承?

   (1)继承者(子类)要扩展父类的功能

11.父类的引用类型可以指向其子类的实例:

  sample:

  B b=new SubB();

  子类SubB可以当父类B来用。

  但是,很显然地,父类B不能当子类用,我们可以把这种错误的继承行为比喻成“乱伦”。

12Single Inheritance

   (1) 任何子类都只能有一个父类;

  (2)所有的类都是Object的子类;

  (3)如果说一个类不继承任何子类,会自动隐藏“extends Object”。

13.构造器是怎么样运行的?

   子类的构造器默认情况下会调用父类的构造器,如果子类的构造器指定调用父类带参的构造器,则父类可以不提供缺省的构造器。

14Polymorphism

   在多态中当中,类的属性在编译阶段确定,在编译阶段绑定。

   静态方法不能override

   静态方法不能用实例方法重置。

   静态方法覆盖静态方法,调用的不是声明类型时定义的方法。

15keyword:instanceof

   description:判断某个实例是否为某个类型的实例或者其子类的实例。

    Syntax:

   <examplename> instance of <typename>

16casting

   父类不可以当子类用,即使类型匹配+强制转换,也会throws NumberFormatException。  

17.方法覆盖

   父子类之间满足一下条件可以override

   (1) 方法名、方法签名一致;

   (2) 子类修饰符的限定范围不能小于父类的修饰符

   (3) 如果子类抛出的异常类型与父类抛出的异常类型有继承关系,那么子类异常类型不能是其父类异常类型的父类或更高,否则子类的Exception 会抢先throws,导致父类Exception失效。

18Polymorphism运行机制:

   在类编译阶段,编译器会检查类型是否匹配(检查声明类型、方法等)。在运行阶段,JVM会调用实例的对应方法,先检查父类方法,后检查子类方法。然后编译器会检查实例声明的类型。  

19.什么是OOPOOP相对于面向过程编程有哪些优点?

   OOPObject-Oriented Programming,面向对象编程不同于面向过程编程:

   (1OOP关注对象和角色,也就是事物的本质

        1OOP把客观世界中的对象抽象成对应的类;

        2)通过类构造实例;

        3)通过依赖、继承、实现等形式建立对象间的通信关系

   (2OOP易于扩展,增加或改变业务的功能,无需大幅改动改变源代码

   (3OOP易于建模,OOP就是软件架构师在计算机高级语言中对客观世界的抽象和再现,人们可以很好地理解和建立起计算机中的抽象模型

   面向过程编程:

   关注的是事物的行为、实现步骤、实体的操作;

   面向过程编程的代码是分散的,不具备良好的架构和设计理念;

   应对变化的能力很差,往往牵一发而动全身。

   例如在一个象棋游戏程序中,OOP关注棋盘、棋手和规则三个对象以及它们之间的关系,而不关心下棋的各种各样的步骤。

20static成员常用来提前做全局的初始化工作。

21super

   (1)调用父类的属性;

  (2)调用父类的方法;

  (3)子类与父类有同名的方法,子类可用super.methodname来区分是父类的方法;

22.怎样使用抽象类?

   (1)尽可能把可以共用的方法和逻辑放到抽象类中;

   (2)属性应尽可能放到子类中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值