JAVA基础(一)基本概念

版权声明: https://blog.csdn.net/Geroge_lmx/article/details/85006511

一.重写与重载

1)重写(Override)

  1. 重写发生在父子类中,方法名相同,参数列表相同,方法体不同;
  2. 重写遵循运行期绑定,看对象的类型来调用方法;

2)重载(Overload)

  1. 重载发生在一个类中,方法名相同,参数列表不同,方法体不同;
  2. 重载遵循编译期绑定,看引用的类型来绑定方法。

备注:子类利用重写修改父类的方法。当子类对象的重写方法被调用时(无论是通过子类的引用调用还是通过父类的引用调用),运行的都是子类重写修改后的版本。

二.this的用法

  1. this.成员变量名----访问成员变量
  2. this.方法名----调用方法(不常用)
  3. this()----调用构造方法

三.super的用法

  1. 指代当前对象的父类对象
  2. super.成员变量名----访问父类的成员变量
  3. super.方法名----调用父类的方法
  4. super()----调用父类的构造方法

四.package包

  1. 避免类名冲突;
  2. 包名可以有层次结构,同包中的类不能同名;
  3. 类的完全限定名:包名.类名;
  4. 建议:包名所有字母都小写

备注:同包中的类可以直接访问;不同包中的类不能直接访问:①可以先import声明类,再访问类;②使用类的完全限定名;

五.构造方法

1.方法的重载(Overload):

    发生在一个类中,方法名称相同,参数列表不同;编译器在编译时会根据签名自动绑定调用的方法;

扫描二维码关注公众号,回复: 5444558 查看本文章

2.构造方法:

  1. 给成员变量赋初值;
  2. 与类同名,没有返回值类型;
  3. 在创建对象时被自动调用;
  4. 若自己不写构造方法,则编译器默认一个无参构造方法;若自己写了构造,则不再默认提供;
  5. 构造方法可以重载。

六.访问控制修饰符

        Java面向对象的基本思想之一是封装细节并且公开接口。Java语言采用访问控制修饰符来控制类及类的方法和变量的访问权限,从而向使用者暴露接口,但隐藏实现细节。访问控制分为四种级别:

访问级别 修饰符 当前类 同包 其它包的非子类 其它包的子类
公开 public
受保护 protected ×
默认 × ×
私有 private × × ×

       #1:用protected修饰的变量及方法,包内的任何类及包外那些继承了该类的子类才能访问,protected重点突出继承;

       #2:如果一个类、类属变量及方法没有用任何修饰符(即没有用public、protected及private中任何一种修饰),则其访问权限为default(默认访问权限);

       #3:顶层类只能用public和default(默认)访问修饰符修饰;

  #4:public修饰的类,类名必须与其所在的源文件名相同,一个.java源文件中有且只有一个public类;

  #5:final修饰的类不能被继承,没有子类。

  #6:abstract修饰的类不能被实例化,必须被子类继承。

       protected属于子类限制修饰符,而default属于包限制修饰符。

七.static和final关键字

static:静态的

静态变量 静态方法 静态块

1.由static修饰;

2.属于类,存在于堆的方法区中,只有一份;

3.常常通过类名.变量名来访问;

4.通常将所有对象共享的数据保存在类变量中。

1.由static修饰;

2.属于类,存在于堆的方法区中,只有一份;

3.常常通过类名.方法名来访问;

4.静态方法中没有隐式的this传递,不能直接访问实例成员;

5.方法的操作仅与参数相关,而与对象无关。

1.由static修饰;

2.类被加载期间,自动执行一次,所以静态块也只执行一次;

3.常常用于初始化静态资源:如图片,音频,视频等。

final:最终的,不可变的

修饰变量 修饰方法 修饰类

1.变量不可被改变,必须在声明时进行初始化;

2.对象一旦创建不可改变,可在声明时初始化或在构造方法中进行初始化;

方法不可被重写 类不可被继承

八. 抽象类和抽象方法

      抽象方法由abstract修饰,只有方法的定义,没有方法的具体实现(连{}都没有),包含抽象方法的类必须被声明为抽象类,抽象类具有以下特点:

  • 由abstract修饰;
  • 类只要有抽象方法必定是抽象类,但抽象类不一定要有抽象方法;
  • 抽象类不能被实例化;
  • 抽象类是需要被继承的,由子类重写所有的抽象方法;

      抽象类的意义:

  • 封装子类共有的属性和行为,实现代码复用;
  • 为所有子类提供一种统一的类型,即向上造型;
  • 可以包含抽象方法,为所有子类提供了统一的入口,每个子类的实现虽然不太,但入口是一致的。

九. 接口

接口是比抽象类还抽象的类,只包含常量和抽象方法的类,使得设计和实现分离,具有以下特点:

  1. 是一个标准、规范的制定方;
  2. 是一种数据类型(引用类型);
  3. 由interface定义,只能包含常量和抽象方法;
  4. 接口不能被实例化
  5. 接口是需要被实现、继承的,实现类、子类必须重写接口中的所有抽象方法;
  6. 一个类可以实现多个接口,多个接口之间使用逗号隔开;
  7. 若又继承又实现,应先继承后实现;
  8. 接口可以继承接口,且接口支持多继承,类不支持多继承;
  9. 类、接口的继承均使用“extends”,接口的实现使用"implements"。

十. 面向对象三大特征

  • 封装
  1. 类:封装的是对象的属性和行为;
  2. 方法:封装的是具体的业务逻辑功能;
  3. 访问控制修饰符:封装的是访问的权限;
  • 继承
  1. 作用:实现代码的复用;
  2. 父类:所有子类共有的属性和行为;
  3. 子类:子类所特有的属性和行为;
  4. 子继承父后,子具有:父类+子类;
  5. 单一继承,多接口实现,传递性;
  • 多态
  1. 意义:行为的多态,对象的多态;
  2. 向上造型,需要强制类型转换,通常用instanceof进行判断;
  3. 多态的表现形式:①重写:主要依据对象,属于运行时多态;②重载:主要依据参数,属于编译时多态。

参考:https://www.cnblogs.com/tjudzj/p/4443066.html

猜你喜欢

转载自blog.csdn.net/Geroge_lmx/article/details/85006511