zoukankan      html  css  js  c++  java
  • java面向对象总结

    类与对象:

    类:具有相同特征的一类事物的抽象

    对象:类的具体实例

    类(对象)之间的关系:

    关联关系:一个类的实例是另一个类中方法的参数

    继承关系(一般与特殊):XX是一种XX,一个类派生出来另一个类

    聚合关系(整体与部分):

    实现关系:

    多态:

    面向对象思想

    1有哪些类与对象

    2类与对象有哪些属性与方法

    3类与类的关系

    成员变量:定义后可以初始化,若不初始化,系统自动初始化为默认值。(局部变量必须初始化后才能使用)

    内存分为4部分,分别为代码区,栈(存放对象引用,局部变量),堆(存放对象,成员变量),数据段(存放静态变量及字符串常量)

    基础数据类型定义的变量占一块内存(该内存空间存变量值),引用数据类型定义的变量占两块内存。

    Dog d1,d2;       //栈中分配一块内存a1,a2

    d1=new Dog();  //堆中分配一块内存b,a1指向b

    d2=new Dog(m,n); //堆中分配一块内存c,a2指向c,c中存放成员变量

    //栈中分配两块内存j,k存放构造函数的参数值m,n,将j,k赋值给c中成员变量,

      //释放栈中内存j,k

    a1与a2中存放的不是物理地址,但根据存放的内容可以找到物理地址

    返回值在栈中有临时的存储空间,返回完后就消失。

    方法除了在内存的代码区存储外,在执行时还会占有内存,执行完方法就释放。在同一个时间同一个方法可能在执行多次

    this关键词:指表示向当前对象的引用,存在于堆内存中的对象里,指向对象本身。this.成员方法/成员变量.

                      调用本类另外构造方法.this(被调用的构造方法参数)

    static关键字:修饰变量时表示静态成员变量,属于类的公有变量,类的所有对象共享这一个变量

                      修饰方法时表示静态方法,在静态方法中不能直接访问非静态变量,非静态方法,可以通过创建对象调用。

    super关键字:在子类中通过super引用父类对象。 super.父类成员方法/父类成员变量

                     在子类中调用父类构造方法。super(父类构造方法的参数)。(必须写在子类构造方法第一行)

    子类的构造方法中必须调用父类构造方法,若没有显式调用父类构造方法,则默认调用父类无参构造方法。若父类中无无参构造方法,则编译出错

    Object类:

    Object类是所有类父类,若定义的一个类未说明继承哪个类,就默认继承Object类

    finalize():当虚拟机回收垃圾前调用的方法。

    getClass():返回已编译好的class对象。

    hashCode():返回对象的哈希码(哈希码独一无二的代表了一个对象,可以通过哈希码找到该对象在内存的位置)

    toString():进行String类型与其他类型数据连接时.(如System.out.println("Dog:"+d);),将自动调用toString()方法把其他类型转换为String类型 。           

                Object类的toString() 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。

                  一般要在子类中重写这个方法

    equals(Object obj):在Object类中,若两个对象的引用指向同一个对象,则返回true,否则返回false。

                               在String,Date等类中,若两个对象的引用指向同一个类的对象且属性相等时返回true,否则返回false

                              继承Object类后,一般要重写此方法。

    “==”:用此运算符比较两个对象的引用,实际上是比较对象引用中存储的对象地址是否相同。

    向上转型:子类对象转换为父类对象

    向下转型:父类对象转换为子类对象

    父类引用指向子类对象时,父类引用只能访问父类成员变量及成员方法。若子类重写了父类中的成员方法,则调用子类中已被重写过的成员方法。

    abstract关键字:修饰类时表示抽象类,不能被实例化,必须被继承。

                           修饰方法时表示抽象方法,含有抽象方法的类必须被声明为抽象类。抽象方法只需要声明,不需要实现。但在继承的子类中必须被重写,或者子类继续声明为抽象类。

                         

    final关键字:修饰的变量的值不能改变

                     修饰的方法不能被重写

                      修饰的类不能被继承

    interface关键字(接口):是一种特殊的抽象类。接口中的所有方法不需实现,并默认为public abstract 类型。接口中的变量默认为public static final类型。

    一个类可以实现多个接口,接口也可以继承其它接口。

    父类接口指向子类实现,父类接口只能访问父类成员变量及子类已实现的父类成员方法。

  • 相关阅读:
    10. 正则表达式匹配
    124. 二叉树中的最大路径和。 递归
    1028. 从先序遍历还原二叉树。 深搜
    1014. 最佳观光组合. 转变思路
    297. 二叉树的序列化与反序列化.
    1300. 转变数组后最接近目标值的数组和. 二分
    15. 三数之和. 双指针法⭐
    1. 两数之和. 哈希表
    739. Daily Temperatures. 单调栈
    面试题46. 把数字翻译成字符串. 递归
  • 原文地址:https://www.cnblogs.com/shangshicc/p/3886982.html
Copyright © 2011-2022 走看看