static关键字和继承一笔记(八)

本文详细介绍了Java编程中的static关键字,包括其作用、使用方式和注意事项,强调了静态成员的类层级共享特性。此外,讨论了继承的概念、特点和方法重写原则,阐述了构造块和静态代码块的执行顺序。同时,重点讲解了final关键字,包括它如何修饰类、方法和变量,以及常量的定义规范。通过对这些核心特性的深入理解,有助于提高代码的复用性和设计质量。
摘要由CSDN通过智能技术生成

方法和封装

一、static关键字:

1. 基本概念:

     • 使用static关键字修饰成员变量表示静态的含义,此时成员变量由对象层级提升为类层级,也就是整个类只有一份并被所有对象共享,该成员变量随着类的加载准备就绪,与是否创建对象无关
     • static关键字修饰的成员可以使用引用.的方式访问,但推荐类名.的方式

2. 使用方式:

     • 在非静态成员方法中既能访问非静态的成员又能访问静态的成员。( 静态成员被所有对象共享)
     • 在静态成员方法中只能访问静态成员不能访问非静态成员。( 因为此时可能还没有创建对象)
     •【注意】 在以后的开发中只有隶属于类层级并被所有对象共享的内容才可以使用static关键字修饰。(不能滥用static关键字)

3. 构造块和静态代码块(了解):

     • 构造块:在类体中直接使用 “{}” 括起来的代码块。【每创建一个对象都会执行一次构造块
     • 静态代码块:使用static关键字修饰的构造块。【 静态代码块随着类加载时执行一次

4. 单例设计模式

      4.1 概念:
           在某些特殊场合中,一个类对外提供且只提供一个对象时,这样的类叫做单例类,而设计单例的流程和思想叫做单例设计模式。

      4.2 实现流程:
           • 私有化构造方法,使用private关键字修饰。
           • 声明本类类型的引用指向本类类型的对象,并使用private static关键字共同修饰。
           • 提供公有的get方法负责将对象返回出去,并使用public static关键字共同修饰。

二、继承:

1. 概念:

     • 当多个类之间有相同的特征和行为时,可以将相同的内容提取出来组成一个公共类,让多个类吸收公共类中已有特征和行为而在多个类型只需要编写自己独有特征和行为的机制,叫做继承。
     • 在Java语言中使用extends(扩展)关键字来表示继承关系。如:

public class Worker extends Person{} 
表示Worker类继承自Person类
其中Person类叫做超类、父类、基类。
其中Worker类叫做派生类、子类、孩子类。

     • 使用继承提高了代码的复用性,可维护性及扩展性,是多态的前提条件

2. 特点:

     • 子类不能继承父类的构造方法和私有方法,但私有成员变量可以被继承只是不能直接访问
     • 无论使用何种方式构造子类的对象时都会自动调用父类的无参构造方法,来初始化从父类中继承的成员变量,相当于在构造方法的第一行增加代码 super() 的效果。
     • 使用继承必须满足逻辑关系:子类 is a 父类,也就是不能滥用继承。
     • Java语言中只支持单继承不支持多继承,也就是说一个子类只能有一个父类,但一个父类可以有多个子类。

3. 方法重写:

      3.1 概念:
           从父类中继承下来的方法不满足子类的需求时,就需要在子类中重新写一个和父类一样的方法来覆盖从父类中继承下来的版本,该方式就叫做方法的重写(Override)。
      3.2 重写的原则:
           • 要求方法名、参数列表以及返回值类型相同,从Java5开始允许返回子类类型。
           • 要求方法的访问权限不能变小,可以相同或者变大。
           • 要求方法不能抛出更大的异常(异常机制)。

4. 又见构造块和静态代码块:

     • 先执行父类的静态代码块,再执行子类的静态代码块。
     • 执行父类的构造块,执行父类的构造方法体
     • 执行子类的构造块,执行子类的构造方法体

三、访问控制:

1. 访问控制符:
修饰本类同一个包中的类子类其他类
public可以访问可以访问可以访问可以访问
protected可以访问可以访问可以访问不能访问
默认可以访问可以访问不能访问不能访问
private可以访问不能访问不能访问不能访问
2. 包的使用:

     在Java语言中,用包(package)的概念来解决命名冲突的问题

四、final关键字【重点】:

1. 概念:

     final本意为"最终的、不可改变的",可以修饰类、成员方法以及成员变量。

2. 使用方式:

     • final关键字修饰类体现在该类不能被继承。主要用于防止滥用继承,如:java.lang.String类等。
     • final关键字修饰成员方法体现在该方法不能被重写但可以被继承。主要用于防止不经意间造成重写,如:java.text.Dateformat类中format方法等。
     • final关键字修饰成员变量体现在该变量必须初始化且不能改变。主要用于防止不经意间造成改变,如:java.lang.Thread类中MAX_PRIORITY等。

3. 常量的概念:

     • 在以后的开发中很少单独使用final关键字来修饰成员变量,通常使用public static final关键字共同修饰成员变量来表达常量的含义,常量的命名规范要求是所有字母都要大写,不同的单词之间采用下划线连
     如: public static final double PI = 3.14;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值