Java快速入门——基础(1)

Java入门基础(1)

1、Java介绍

1.1 什么是Java

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念。

面向对象思想是一种程序设计思想, 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。

1.2 Java的编译环境

  • JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。
  • JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具。

Java快速入门——基础(1)_第1张图片
什么是JVM?
JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境。我们编写的Java代码,都运行在 JVM 之上。 具有跨平台性

1.3 Java程序开发三步骤

Java程序开发三步骤:编写、编译、运行

  • 编译:是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们 所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
  • 运行:是指将 class文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了。

2、基本数据类型

2.1 Java中定义了四类八种基本数据类型:

Java中定义了四类八种基本数据类型:
布尔型:          boolean
字符型:          char
整数型:          byte, short, int, long
浮点数型:        float, double

Java快速入门——基础(1)_第2张图片

long 类型:建议数据后加L表示。
float 类型:建议数据后加F表示。

2.2 数据类型转换

Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。

  • 自动转换:将 取值范围小的类型 自动提升为 取值范围大的类型
  • 将取值范围大的类型 强制转换成 取值范围小的类型 。比较而言,自动转换是Java自动执行的,而强制转换需要我们自己手动执行。

2.3 装箱和拆箱

自动装箱是Java 编译器在基本数据类型对应的对象包装类型之间做的一个转化。反之就是自动拆箱。

原始类型: boolean,char,byte,short,int,long,float,double
封装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

int和Integer的区别
1、Integer是int的包装类,int则是java的一种基本数据类型
2、Integer变量必须实例化后才能使用,而int变量不需要
3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
4、Integer的默认值是null,int的默认值是0

2.封装

2.1什么是封装

封装是一个保护屏障,防止该类的代码和数据被其他类随意访问。

2.2封装的步骤

  1. 使用 private 关键字来修饰成员变量。
  2. 对需要访问的成员变量,提供对应的一对 getXxx 方法 、 setXxx 方法。

private的含义

  • private是一个权限修饰符,代表最小权限。
  • 可以修饰成员变量和成员方法。
  • 被private修饰后的成员变量和成员方法,只在本类中才能访问。

3.继承

3.1概念

继承就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。

4、多态

4.1 什么是多态

是指同一行为,具有多个不同表现形式。

前提(重点)

  1. 继承或者实现【二选一】
  2. 方法的重写【意义体现:不重写,无意义】
  3. 父类引用指向子类对象【格式体现】

4.2 多态的作用

实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方法,进行方法的调用,更能体现出多态的扩展 性与便利。

4.3 引用类型转换

  • 向上转型:多态本身是子类类型向父类类型向上转换的过程,这个过程是默认的。(当父类引用指向一个子类对象时,便是向上转型)
    注意:当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误。
  • 向下转型:父类类型向子类类型向下转换的过程,这个过程是强制的。(eg: :Cat c =(Cat) a; )

5、重写、重载

重写就是再写一遍,重载就是再加一个

重写(override)又名覆盖:
1.不能存在同一个类中,在继承或实现关系的类中;
2. 名相同,参数列表相同,方法返回值相同,
3.子类方法的访问修饰符要大于父类的。
4.子类的检查异常类型要小于父类的检查异常。

重载(overload)
1.可以在一个类中也可以在继承关系的类中;
2.名相同;
3.参数列表不同(个数,顺序,类型) 和方法的返回值类型无关。

6、抽象类

6.1什么是抽象方法,抽象类

我们把没有方法主体的方法称为抽象方法。Java语法规定,包含抽象方法 的类就是抽象类。

6.2抽象的使用

继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该父类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,失去意义。

6.3注意事项

  • 抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。

  • 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。

  • 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

  • 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则,编译无法通过而报错。除非该子类也是抽象类。

7、接口

7.1 什么是接口

接口,是Java语言中一种引用类型,是方法的集合

接口的使用,它不能创建对象,但是可以被实现( implements ,类似于被继承)。一个实现接口的类(可以看做 是接口的子类),需要实现接口中所有的抽象方法,创建该类对象,就可以调用方法了,否则它必须是一个抽象类。

8、final

8.1 是什么

用于修饰不可改变内容。

final: 不可改变。可以用于修饰类、方法和变量。

  • 类:被修饰的类,不能被继承。
  • 方法:被修饰的方法,不能被重写。
  • 变量:被修饰的变量,不能被重新赋值。

你可能感兴趣的:(java)