首页 > 编程语言 >Java面向对象基础部分学习记录

Java面向对象基础部分学习记录

时间:2023-03-25 21:24:41浏览次数:33  
标签:Java 变量 记录 静态 子类 构造 面向对象 父类 方法

static关键字:

  1. 修饰变量。该变量成为类变量,该变量一般为所有类中所有成员共享,在该类中其他方法可以直接调用使用,在其它类中可以直接通过类名调用使用。
  2. 修饰方法。该方法成为类方法,一般工具类中的方法都用static所修饰,方便其他类直接调用工具类中方法使用。工具类构造器一般会做私有化处理。
  3. 修饰代码块。改代码块就成为静态代码块,一般做初始化使用。
  4. 被static修饰的成员都会变成类成员,所属为类。一般通过类名.成员名调用
  5. 静态成员在类的字节码文件加载到方法区的时候就会调用执行:静态变量会被放到堆内存中的静态区中;静态方法在加载到方法区时就会执行;静态代码块也是在字节码文件加载到方法区时就会执行,且只会执行一次。
  6. 非静态成员与静态成员的区别:静态成员属于类,非静态成员属于对象。静态成员在类的字节码文件加载到方法区时就会执行。非静态成员只有在创建对象时才会被执行。
  7. 非静态成员与静态成员的联系:静态方法中只能使用静态变量或者静态方法,不能使用非静态变量和非静态方法。非静态方法可以使用静态成员。
  8. 静态方法中没有this关键字。
单例设计模式:
  1. 是什么? 让对象只能被创建一次
  2. 怎么做?私有化构造器;定义一个类变量记住一个对象;定义一个类方法返回对象
继承:
  1. 继承通过extends关键字使两个类产生关联。
  2. 子类会可以直接使用父类中的非私有化属性和方法,从而减少重复代码的编写提高编码效率。
  3. 继承为单继承(只能继承一个父类),但可以多层继承(即可以有爷爷类)。所有类都直接或者间接继承自object类
  4. 方法重写:子类可以重写父类中的方法(子类把从父类继承下来的虚方法表里面的方法进行覆盖才叫重写)即方法名相同参数列表也相同;为什么要重写?父类中的方法无法满足子类中的需要,比如toString()方法。私有方法静态方法final修饰的方法无法被重写(因为私有的静态的最终的不进虚方法表)。
  5. 子类构造器:子类构造器中隐含了super()即父类的构造器,子类通过构造器在被创建对象同时会调用构造器中的父类构造器,从而也把父类中的内容构造出来。子类构造器有两种形式,一是无参构造即super(),二是有参构造即super(父类中的非私有成员变量)。其中super()是默认存在的,当父类中没有无参构造,只有有参构造时就会报错,因此类中最好无参构造有参构造都要包含。
  6. 兄弟构造器:this()调用本类中其他构造器。为什么要用?当需要用到构造器中不完全传参时,可以使用子类构造器。
  7. this和super必须放在构造器中第一行的位置,且两个不能同时存在。
  8. 子类创建对象过程:在创建子类对象时,子类的字节码文件会和父类的字节码文件一同加载到方法区,子类对象中的属性包含子类中的属性和父类中的属性。即对象是靠两张设计图一同设计出来的。
多态:
  1. 多态包含对象多态和行为多态(多态的行为也叫向上转型)
  2. 多态的条件:一、两个类之间存在继承或实现关系,二、父类变量引用子类对象,三、存在方法重写
  3. 多态的优点:一、解耦合。 二、可以在方法的形参中是用父类类型,方便传入子类类型的对象,以进行方法的多态。
  4. 劣势:无法使用子类中特有的方法。解决方法向下转型(即强制类型转换)把父类变量在强制转换为原对象类型。在类型转换时可以使用instanceof关键字判断类型是否相同,避免程序出错。
final关键字:
  1. 修饰变量,当此变量为基本数据类型时,此时该变量为常量,只能被赋值一次,无法被再次赋值;当该变量为引用数据类型是,该变量存储的地址不会发生改变,但其中的内容可以发生改变。
  2. 修饰方法,此时该方法无法被重写。
  3. 修饰类,此时该类无法被继承。
抽象类:
  1. 抽象类是被abstract关键字修饰的类
  2. 抽象类中可以有成员变量,成员方法,类变量,构造方法,getset方法,但是不可以有类方法。
  3. 抽象类不能被创建对象,只有被子类继承,通过子类来创建对象。子类继承时,必须重写抽象方法。因此抽象类可以更好地支持多态,因为子类必定重写父类中的抽象方法。
  4. 模板方法设计模式:第一步:设计模板方法,第二部,设计抽象方法。在模板方法中调用抽象方法,而抽象方法交给子类去重写。可以使用final来修饰模板方法,避免模板被子类重写。
接口:
  1. 接口是interface关键字修饰的类
  2. 接口中的变量一般都是常量,默认被public static final修饰
  3. 接口中的方法都是抽象方法。必须在接口实现类中对其进行重写
  4. 好处:补充了单继承的劣势,可以面向接口编程
              

标签:Java,变量,记录,静态,子类,构造,面向对象,父类,方法
From: https://www.cnblogs.com/zwshd/p/17255613.html

相关文章

  • Java入门_一维数组_第三题_数组反转
    题目:数组反转要求:把数组的内容反转。如:arr{11,22,33,44,55,66}-->{66,55,44,33,22,11}。思路-1通过具体实例得,每一次都是将arr[i]和......
  • 《Java》学习随笔 1、基础语法
    1Java基础语法1.1基本概念一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。对......
  • Java 泛型
    泛型1.泛型引入不能对加入到集合ArrayList中的数据类型进行约束(不安全)遍历的时候,需要进行类型转换,如果集合中的数据量较大,对效率有影响packagegeneric_;public......
  • java——spring boot集成kafka——kafka中主题topic和分区partition的概念
                                                       ......
  • 面向对象编程
    目录python中的两大编程思想面向过程面向对象两种编程思想的分析面向对象的推导步骤1:定义学生和选课功能步骤2:信息字典步骤3:数据与功能的绑定类与对象面向对象编程类的语......
  • java——spring boot集成kafka——查看消费组以及信息
                                                       ......
  • java——spring boot集成kafka——单播与多播消息的实现
    单播消息的实现:   单播消息:⼀个消费组⾥只会有⼀个消费者能消费到某⼀个topic中的消息。于是可以创建多个消费者,这些消费者在同⼀个消费组中。  创建一个消费......
  • Java多线程
    一、多线程简介 Java多线程是指在一个程序中同时执行多个线程(线程就是一条执行路径)。Java中的多线程可以提高程序的运行效率和并发性,通常用于执行一些耗时的操作或需要同......
  • Java获取系统时间的4种方法
    Java获取系统时间的4种方法1publicDateTime(){2//1.设置时间格式3/*4*yyyy-MM-dd:年-月-日2023-03-255......
  • Java IO详解
    一、IO简介1.概念 JavaIO(Input/Output)是Java编程语言对输入和输出(I/O)进行封装的一组类和接口,JavaIO提供了输入流和输出流的抽象,可以使开发者以相同的方式读写......