Java基本数据类型,类、抽象类、接口的概况

1.Java的数据类型

这里写图片描述
Java是一门强类型的语言,在定义一个变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一类型或者它的子类型的值,否则程序报错。
Java的数据类型主要分为两种:基本数据类型和引用数据类型

  • 整数类型
    整数类型主要分4类,字节型(byte)、短整型(short)、整型(int)、长整型(long)。
类型名 占用空间 取值范围
byte 8位(1个字节) -2^6~2^7-1
short 16位(2个字节) −2^15~2^15−1
int 32位(4个字节) −2^31~2^31−1
long 64位(8个字节) −2^63~2^63−1
  • 浮点数据类型

    浮点数据类型主要用于存储小数数值。在Java中,浮点数据类型分成两种,单精度(float)和双精度(double)。

类型名 占用空间 取值范围
float 32位(4个字节) 1.4E-45~3.4E+38,-1.4E-45~-3.4E+38
double 64位(8个字节) 4.9E-324~1.7E+308,-4.9E-324~-1.7E+308

E表示以10为底的指数,E后面的+号和-号代表正指数和负指数,例如1.4E−45表示1.4∗10−45。

  • 布尔类型
    布尔类型(boolean),只有两个值,truefalse,表示逻辑真、假。


  • 引用数据类型

    主要包括接口(interface)、类(class)、枚举(enum)、注解(ennocation)

    区别:
    1、基本数据类型在创建时,直接在栈划分一块区内存,将数值存储在栈上。
    2、引用数据类型在被创建时,首先在栈上分配一块内存,而对象的内容都存储在堆上,由栈上面的引用指向堆中对象的地址。

2. 实体类、抽象类、接口类

- 实体类:通过class定义,不能被抽象类的类就是实体类,实体类是对一项事物的描述,进行特征行为解释,声明字段函数和方法。然后可以通过被实例化创建对象。例如`Person

person=new Person();` 人:具有名字、年龄、性别特征。有吃饭、睡觉等行为。

public class Person {

    // 声明Person类的name
    private String name;

    // 声明Person类的age
    private int age;

    // 声明Person类的sex
    private String sex;

    // 声明Person类的sleep方法
    public void sleep() {
        System.out.println("睡觉");
    }

    // 声明Person类的eat方法
    public void eat() {
        System.out.println("吃饭");
    }
}

- 抽象类:通过abstract class定义,抽象类是用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但本质相同的具体概念的抽象。

  • 抽象类可以有成员函数、可以是变量也可以是常量
  • 抽象类中可以有抽象方法,也可以有普通方法,还可以有静态方法
  • 有抽象类方法类必须声明位抽象类,抽象类中不一定有抽象方法。
  • 抽象类可以有构造函数,但是不能实例化对象,构造函数用于子类调用。
  • 具体类继承抽象类时,必须重写里面的抽象方法。
  • 抽象类的方法必须使用public或者protected修饰,缺省情况下默认为public。
  • 抽象方法没有方法体,需要被子类继承重写方法。
public abstract class A {

    public abstract void B();

}

- 接口类:通过interface修饰,接口是指供别人调用的方法或者函数,它是行为的抽象。

  • 接口中可以有成员变量,但是会被默认指定为public static final变量,也就是常量。
  • 接口中的方法只能是抽象方法,全部会默认的指定为public abstract。
  • 接口没有构造函数。

public interface MyInterfaceOfTest {

    public abstract void A();

    void B();// 默认指定为public abstract void B();
}

- 实体类、接口类、抽象类的关系

实体类 接口类 抽象类
实体类 继承(extends) 实现(implements) 继承(extends)
接口类 实现(implements) 继承(extends) 实现(implements)
抽象类 继承(extends) 实现(implements) 继承(extends)

注意:Java中,继承只能有一个,实现可以多个

猜你喜欢

转载自blog.csdn.net/qq_41356363/article/details/80603264