Java语言基础学习笔记——面向对象


继承:什么是一种什么,就是继承关系
聚合:什么是什么的一部分,不唯一,例如球队队长
组合:什么是什么的必须的构成部分,唯一的,别的不能用,例如,人的头

面向对象设计思想:1.考虑问题中有哪些类哪些对象
                  2.考虑这些对象和类中各有有哪些属性和方法
                  3. 再考虑类和类之间的关系

1。对象的创建和使用:
    1:必须使用new关键字创建对象。
    2:使用对象引用.成员变量或来引用对象的成员变量。
    3:使用对象引用.方法(参数列表)来调用对象的方法。
    4;同一类的每个对象有不同的成员变量存储空间。
    5:同一类的每个对象恭喜该类的方法

2 引用类型: Dog d = new Dog();声明一个Dog类型的引用变量,使用new语句创建了一个Dog,可以通过d来访问它

 d.furcolor    d.catchmouse()

3:构造方法:要和类名一样,没有返回值,和new一起使用来构造新的对象

4:内存分析

5。方法重载OverLoad,形参不一样(形参类型不同或数量不同),返回值必须相同
例如void max(int a, int b)和void max(float a, float b)

构造方法也可以构成重载

6.添加一个方法有3个问题。1是方法名,2是方法参数,3是返回值

7。this关键字:有时候处理重新的情况,使用该方法的对象的引用
class Cat {
  String = name;
   Cat(String name) {
    this.name = name;
   }
}

8.static:用static声明的成员变量为该类的公用变量
          用static声明的方法为静态方法,不可以访问非static的成员
          可以通过对象引用或类名访问静态成员

9:package包:为了解决类名重名的问题,取名约定是公司域名倒过来
1。必须写在java源文件的第一条语句
2。编译出来的.class文件必须位于正确的目录文件下面。(该类的源码可能产生影响,删除或转移其他目录)
3。如果想在另外一个类中,用包里的类,必须把名字写全或用improt引入
   访问同一个包中的类不需要引入

4。 import 引入包里的类 引入* 或具体类名,例如imoprt.com.hqr.java001.*;
 
5。  必须class文件的最上层包的父目录位于classpath下(右键我的电脑属性。环境变量)
6 。执行一个类也必须写全包名

jar - cvf 名字.jar *.* 打包

7.继承:用extends关键字来实现

8。方法的重写(overwrite):1,必须和被重写方法具有相同的方法名称,参数列表和返回类型。
               2,重写方法不能使用比被重写方法更严格的访问权限
9.super 引用基类成分

10:继承中的构造方法
   子类的构造的过程中必须调用其基类的构造方法。
   子类可以在自己的构造方法中使用super(参数清单)调用基类的构造方法
       使用this(参数)调用本类的另外的构造方法
       如果使用super,必须写在子类构造方法的第一行

11:object中的头toString()方法,(TestToString)(针对对象)
public String toString()
当进行String与其他类型数据的连接操作时,例如System.out.println("info"+person.toString());将自动调用该对象

12:public boolean equals(Object obj)方法
   equlas方法定义为:x.equals(y)当x和y是同一个对象的应用时返回ture否则返回false

13:对象转型(casting):可以使用instanceof 类名 来判断该引用型变量所指向的对象是否属于该类或该类的子类
例如System.out.pritnln(a instanceof Animal);//true

14:多态:存在的必要条件
         1。要有继承
         2。要有重写
         3。父类应用指向子类对象

15.1抽象类abstract:需要定义不需要实现的方法
   2抽象方法是用来重写的。public abstract void enjoy();
   3当一个类中含有抽象方法的时候,这个类必须是抽象类
   4抽象类不能实例化

16。final变量的值不能改变。
    final的方法不能被重写
    final的类不能被继承

17。接口(interface):本质上是特殊的抽象类
    只包含常量的方法和定义,而没有变量和方法的实现

    接口特性: 接口可以多重实现;就是一个类可以接多个接口
               接口中声明的属性默认为public static final 的,也只能是
               接口的方法只能是抽象的public abstract的
               接口可以继承其他的接口,并添加新的属性和抽象方法
              
                多个无关的类可以实现同一个接口
   一个类可以实现多个无关的接口
                与继承关系类似,接口与实现类之间存在多态性
   用implements实现


抽象类和接口的区别

   1,抽象类里可以有构造方法,而接口内不能有构造方法。

   2,抽象类中可以有普通成员变量,而接口中不能有普通成员变量。

   3,抽象类中可以包含非抽象的普通方法,而接口中所有的方法必须是抽象的,不能有非抽象的普通方法。

   4,抽象类中的抽象方法的访问类型可以是public ,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。

   5,抽象类中可以包含静态方法,接口内不能包含静态方法。

   6,抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public  static类型,并且默认为public static类型。

   7,一个类可以实现多个接口,但只能继承一个抽象类。

原文地址:https://www.cnblogs.com/hqr9313/p/2438298.html