java基础学习回顾01-数据类型+面向对象

2021-10-31 16:51:26

一、标志符和关键字

1.1标志符:

(1)以下划线、字母、数字、$ 命名,其中数字不可开头

(2)大小写敏感

1.2关键字

(1)所有关键字都是小写

(2)保留关键字:goto\const

(3)true、false、null不是关键字,但是也不可以作为标志符

二、基本数据类型

(1)数据类型分为引用数据类型和基本数据类型

(2)基本数据类型分为4大类,8种数据类型(整型:byte/short/int/long,浮点型float/double,字符型char,布尔型boolean)

2.1 存储数据的变量

(1)要素:Java是一种强类型语言,变量要素包括变量名+作用域+数据类型

(2)变量根据作用域:类变量、成员变量(类内、方法体外)、局部变量

(2)关键:申明时指定数据类型,使用时必须先赋值

  1)类的成员变量会被赋默认初始值,数组定义后也会有默认值

2.2 基本数据类型转换

(1)整型常量默认为int型,浮点型常量默认为double型---->定义float型常量 1.22F、1.22f

(2)转化分为:强制转换和自动转换(小容量向大容量转换,自动完成)

  1)自动转:char、byte、short ----int---long---float---double

  2)强转:(数据类型)

public static void main(String[] args) {
        //自动转换
        byte b1=12;
        short s1=111;
        char c1='1';
        int i = b1 + s1 + c1;//1️⃣转int
        int i1 = b1 + s1 + c1 + 111;//转int
        long long1 = 123;
        long l = long1 + i1;//2️⃣转long
        float f = 1.233f;
        float v1 = f + l;//3️⃣转float
        double v = l + 1.23;//4️⃣转double
        //强制转换
        byte b2 = 120;
        /*
        short s2 = s1 +s1;//provide int,short运算时会自动提到int
        byte b3 = b2 + b1;//provide int,byte运算时会自动提到int
        * */
        byte i2 = (byte)( b2 + b1);
        System.out.println("120+12的bite强转为" + i2); //结果为-124
        /*
        int i3 = i2 + 1.2;//provide double,含有double运算时会自动提到int
        * */
        int i3 = i2 + (int)1.2;
        System.out.println("-124+1.2的bite强转为" + i3); //结果为-123,有精度损失
        
    }

三.面向对象

3.1 基本思想

分析思想:类和对象---属性和方法---类和类中间的关系

3.2概要

(1)类是对象的抽象,对象是类的具体实现

(2)类的组成部分:

  1)属性(成员变量/静态部分)

  2)方法(动态部分)

(3)类间的关系:

  1)继承

  2)实现

  3)关联

  4)聚合

    1)聚集(球队和队员,空心菱形)

    2)组合(器官和身体,实心菱形)

(4)面向对象的3个特征:继承、封装、多态

(3)合适的方法出现在合适的类中!

3.3 构造新对象

3.3.1内存分析

(1)分配内存:

  1)栈:对象引用、局部变量(当方法调用完成之后,栈里面为它分配的空间全部都要消失,即把这个方法调用时分配给它的内存空间释放出来,)

  2)实际对象

3.4 抽象类和接口(继承和实现)

3.4.1 抽象类和抽象方法

(1)有抽象方法的一定是抽象类,反之不然

(2)抽象类的子类还可以是抽象类(实现不了,还是抛给后代)

3.4.2 接口

接口的本质是一种特殊的抽象类,只包含静态常量(public static final)和抽象方法(1.8以前)

(1)接口支持多继承,即一个接口是可以继承多个接口

(2)一个类可以实现多个接口

3.4.3 对比

(1)抽象类可以有非抽象方法/普通成员变量,接口都是抽象方法/静态常量

(2)抽象类只能被单继承但可以多实现,接口可以多继承(不能实现)

(3)抽象类可以有构造方法,接口不能有

(4)抽象类中的抽象方法的访问类型可以是public,protected,接口方法只能是public

3.5 多态(动态绑定)

(1)在执行期间判断对象的实际类型,根据实际类型调用对应的方法

  1)父类的引用指向子类的对象

  2)调用的方法被重写

(2)在运行时确定要调用的方法(编译看左边,运行看右边)

(3)附:静态绑定:final,static,private和构造方法是静态绑定。

3.6 对象转型

(1)向上转型(多态)

(2)向下转型(访问右边的独有属性)

3.7 object对象的方法

重写

(1)toString()

(2)equals()

 

posted @ 2021-10-31 12:12  低手寂寞  阅读(50)  评论(0)    收藏  举报