JAVA小白从0入门

2022-08-02,

DAY2

面对对象

  • 基本概念
    • 对象
  • 特性
    • 封装
    • 继承
    • 多态

基本概念

1.类是一群具有相同属性(变量)和行为(方法)事物的统称(抽象存在)

2.类的组成=成员变量+方法

3.类的定义

 class teacher
{
    //成员变量
    //成员方法
}

4.实例变量与局部变量的区别:

     声明的位置不同:实例变量在类中方法外,局部变量在方法内或代码块内

     数据的存储位置不同:实例变量在堆中,局部变量在栈中
     
     初始值的获得不同:实例变量有默认值,局部变量必须手动初始化

     作用域:实例变量(本类中直接访问,其他类通过对象访问),局部变量从声明处开始,到所属的}就结束
     
     修饰符:实例变量可以多种修饰符,局部变量最多只能使用final

5.方法重载:在同一个类中,出现的多个方法名称相同,参数列表不同的情形称为方法重载

  注:与返回值类型无关,与方法的修饰符列表无关

对象

1.是实际存在的该类事物的每个个体,因而也称实例(具体存在)

2.类与对象的关系 :

                 类是对一类事物的描述,是抽象的。

                 对象是一类事物的实例,是具体的。
                             
                  类是对象的模板,对象是类的实体。

3 .import语句:用于确定需要引入的类的位置,使得在代码中使用其他包的类可以使用简写名,不用全名称。

4.package:用于确定当前源文件中的类的位置。写在.java源文件可执行代码的首行

特性

封装

1.将对象的属性和行为封装起来,其载体就是类。把该隐藏的隐藏起来,该暴露的暴露出来.所以封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的方式。

2.封装的好处:安全、简单、将变化隔离、重用
3.this关键字:this是一个引用,this是一个变量,this变量中保存了内存地址指向自身,this存储在JVM堆内存,java对象内部

3.1 this可以出现在实例方法当中,this指向正在执行动作的对象。this代表当前对象。

3.2 this做多数情况下可以省略不写。

3.3 this不能使用在带有static的方法当中。
4.包
4.1包的作用:
4.1.1避免类的重名
4.1.2用于控制访问权限
4.1.3用于划分项目的结构层次,通常将功能相近的类划分到同一个包中

4.2JDK中主要的包介绍:
4.2. 1. java.lang----包含一些Java语言的核心类,如String、Math、Integer,System和Thread,提供常用功能。
4.2.2. java.net----包含执行与网络相关的操作的类和接口。
4.2.3. java.io ----包含能提供多种输入/输出功能的类。
4.2.4. java.util----包含一些实用工具类,如定义系统特性、接口的集合框架类、使用与日期日历相关的函数。
4.2.5. java.text----包含了一些java格式化相关的类
4.2.6. java.sql----包含了java进行JDBC数据库编程的相关类/接口
4.2.7. java.awt----包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。
4.2.8. java.applet----包含applet运行所需的一些类。

继承

1.继承是描述两个类之间的关系,类A继承了类B,那么类A会自动拥有类B中非私有的成员,这个过程就是继承。类A称为子类、类B称为父类
2.格式:

class 父类 {
}
 
class 子类 extends 父类 {
}

3.父子类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式:

3.1.1直接通过子类对象访问成员变量:等号左边是谁,就优先用谁,没有则向上找。

3.1.2间接通过成员方法访问成员变量:该方法属于谁,就优先用谁,没有则向上找。

3.2当出现三种情况时的调用关系:
局部变量: 直接写成员变量名
本类的成员变量: this.成员变量名
父类的成员变量: super.成员变量名
注:无论是成员方法还是成员变量,如果没有都是向上找父类,绝对不会向下找子类的

4.重写:当父类中的方法对于子类来说不适用的时,子类可以对父类中的方法进行重写

4.1 方法名:必须完全一致

形参列表:必须完全一致

返回值类型:如果是基本数据类型和void,必须完全一致。如果是引用数据类型,必须是<=,即重写的方法的返回值类型<=被重写方法的返回值类型,Student<Person

修饰符:重写的方法的修饰符范围>=被重写方法的修饰符范围(public>protected>缺省>private)

注:重写的方法不能是static的,final的,子类不可见的

5.super关键字用法:

super.属性:
如果子类有与父类同名的属性时,可以用super.属性明确表示是父类的属性。

super.方法:
如果子类重写了父类的方法时,可以用super.方法明确调用父类被重写的方法

super()或super(实参列表):
super()显式调用父类的无参构造
super(实参列表)显示调用父类的有参构造

多态

1.若编译时类型和运行时类型不一致,就出现多态

1.1编译时,“看左边”,看的是父类的引用(父类中不具备子类特有的方法)

1.2运行时,“看右边”,看的是子类的对象(实际运行的是子类重写父类的方法)

2.向上转型与向下转型:
2.1 向上转型upcasting:子类转父类 系统自动完成

2.2 向下转型downcasting:父类转子类 需要使用强制类型转换符()

对象的关联关系:依赖,关联,聚合,组合,继承

本文地址:https://blog.csdn.net/qq_49163279/article/details/107347478

《JAVA小白从0入门.doc》

下载本文的Word格式文档,以方便收藏与打印。