BD1 - Java 1-3

Java第3天上午

上午主要讲了继承 多态相关内容

写在之前

对于Person类:

public class Person{
    // 定义了两个成员变量
    public String name;
    public int age;
    // 定义了一个say方法
    public void say(String content){
        System.out.println(content);
    }
}

与前面介绍的数组类型相似,类也是一种引用数据类型,因此程序中定义的Person类型的变量实际上是一个引用,它被存放在栈内存中,指向实际的Person对象;而真正的Person对象则存放在堆(heap)内存中

// 定义p变量的同时并为p变量赋值
Person p = new Person();
// 访问p的name实例变量,直接为该变量赋值
p.name = "暗影";
// 调用p的say()方法,声明say()方法时定义了一个形参
// 调用该方法必须为形参指定一个值
p.say("Java 从入门到放弃");
// 直接输出p的name实例变量,将输出暗影
System.out.println(p.name); 

对应:

BD1 - Java 1-3_第1张图片
0.png

拓展理解:


BD1 - Java 1-3_第2张图片
0-1.png

开始上午的内容:

包名一般是域名反过来写:

BD1 - Java 1-3_第3张图片
1.png

导入包:


BD1 - Java 1-3_第4张图片
2.png

Java常用包:

BD1 - Java 1-3_第5张图片
3.png

访问修饰符:

BD1 - Java 1-3_第6张图片
4.png

构造函数:


BD1 - Java 1-3_第7张图片
5.png

setter方法和构造方法:


BD1 - Java 1-3_第8张图片
6.png

类设计相关:

BD1 - Java 1-3_第9张图片
7.png

面向对象的3大特性:
继承 封装 和 多态


继承:

BD1 - Java 1-3_第10张图片
8.png

继承的特性:


BD1 - Java 1-3_第11张图片
9.png

Java只能单继承,相关拓展阅读:
为什么Java类只能单继承

BD1 - Java 1-3_第12张图片
10.png

子类访问父类:


BD1 - Java 1-3_第13张图片
11.png
BD1 - Java 1-3_第14张图片
12.png
BD1 - Java 1-3_第15张图片
13.png

要区别重载和重写:


BD1 - Java 1-3_第16张图片
14.png

super:


BD1 - Java 1-3_第17张图片
15.png

调用父类构造方法:


BD1 - Java 1-3_第18张图片
16.png

this & super:

BD1 - Java 1-3_第19张图片
17.png

多态:(指同一个实体同时具有多种形式)

BD1 - Java 1-3_第20张图片
18.png

注意:区别编译时类型 和 运行时类型

实现多态的机制:(动态绑定)

BD1 - Java 1-3_第21张图片
19.png

继承是多态产生的基础!
注意区别 编译时多态和运行时多态(面试时常考)

  • 编译时多态:方法重载
  • 运行时多态:方法覆写
    静态方法不能覆写

类型转换:

BD1 - Java 1-3_第22张图片
20.png

BD1 - Java 1-3_第23张图片
21.png
BD1 - Java 1-3_第24张图片
22.png

下午主要讲了

  • 基本数据类型的包装类
  • 基本数据类型和包装类互换
  • 自动装箱&自动拆箱
  • 基本类型和String之间的转换
  • Object类
BD1 - Java 1-3_第25张图片
x1.png
BD1 - Java 1-3_第26张图片
x2.png
BD1 - Java 1-3_第27张图片
x3.png
BD1 - Java 1-3_第28张图片
x4.png
BD1 - Java 1-3_第29张图片
x5.png
BD1 - Java 1-3_第30张图片
x6.png

下午内容讲完了


可点击下载完整PPT

另外想了解数据结构和算法的朋友可以关注:
C/C++ java 算法与数据结构
(提供算法思想 及 C/C++、Java源代码)


** 浏览过大家的总结再补充些重点:**

  • 实例化子类时先调用父类构造方法实例化父类对象再调用子类构造方法
  • 若父类的引用指向子类的对象,则该引用只能调用父类中定义的方法和变量;如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法
  • 继承(is a)的耦合性太高,组合(has a)的耦合性低(高内聚 低耦合!)
  • final修饰的类,不可再被继承;final修饰的方法,不能被重写,但可以重载多个final修饰的方法
  • 静态方法不能被覆写!

你可能感兴趣的:(BD1 - Java 1-3)