【01】面向对象 继承

【01】Java基础 面向对象 继承

📔 千寻简笔记介绍

千寻简笔记已开源,Gitee与GitHub搜索chihiro-notes,包含笔记源文件.md,以及PDF版本方便阅读,且是用了精美主题,阅读体验更佳,如果文章对你有帮助请帮我点一个Star

更新:支持在线阅读文章,根据发布日期分类。

简介

作者在学校的时候,在b站跟着遇见狂神说学了一遍Java的内容,也是在视频中跟着Up主一起去写笔记形成的习惯,延续到工作中受益良多,现在把之前的笔记二次整理放出来给大家,大部分的笔记都是跟着Up主抄的,建议大家跟着视频一起去学习。

篇幅比较小,是跟着课程去写的,有错误的地方还评论指正,谢谢大家的观看。

本文关键词

Java中的数据类型基本数据类型引用数据类型String中的方法输入流和输出流this的作用以及本质匿名对象继承(概念、语法、作用、特点)

1 Java中的数据类型

基本数据类型

Java中的基本数据类型分为四类,总共有八种基本数据类型。

  1. 整数类型(整型):
    • byte:8位有符号整数,取值范围为-128到127。
    • short:16位有符号整数,取值范围为-32,768到32,767。
    • int:32位有符号整数,取值范围为-2,147,483,648到2,147,483,647。
    • long:64位有符号整数,取值范围为-9,223,372,036,854,775,808到9,223,372,036,854,775,807。
  2. 浮点类型:
    • float:32位浮点数,取值范围为1.4E-45到3.4028235E+38,可表示小数位数约为6-7位。
    • double:64位浮点数,取值范围为4.9E-324到1.7976931348623157E+308,可表示小数位数约为15位。
  3. 字符类型:
    • char:16位Unicode字符,可以存储任何Unicode字符。
  4. 布尔类型:
    • boolean:表示真(true)或假(false)的布尔值。

引用数据类型

除了基本数据类型,Java还有引用数据类型。引用数据类型是由程序员自定义的类或Java提供的类,可以用来表示更复杂的数据结构。

一些常见的引用数据类型包括:

  1. 类(Class):类是Java中最基本的引用数据类型,用于创建对象。类是通过属性和方法的集合来描述对象的特征和行为。
  2. 数组(Array):数组是一种用来存储多个相同类型的元素的容器。数组可以是一维、二维或多维的,并且可以存储基本数据类型或引用数据类型。
  3. 接口(Interface):接口定义了一组方法的规范,实现该接口的类必须实现这些方法。接口提供了一种实现多态性的方式。
  4. 枚举(Enum):枚举是一种特殊的引用数据类型,用于定义一组固定的常量。枚举类型可以有多个枚举值,每个枚举值都可以对应一个名称和值。
  5. 字符串(String):字符串是由字符组成的不可变序列。在Java中,字符串是引用数据类型,但是使用起来比较特殊,可以像基本数据类型一样进行操作。

此外,还可以使用Java提供的许多其他引用数据类型,如集合(Collection)、列表(List)、映射(Map)等,这些类型用来处理更复杂的数据结构和算法。

2 引用数据类型String中的方法

判断方法

  • boolean equals(String str):比较两个字符串的内容是否相等。
  • boolean equalsIgnoreCase(String str):比较两个字符串的内容是否相等,忽略大小写。
  • boolean startsWith(String subStr):判断某个字符串是否以指定的子串开头。
  • boolean endsWith(String subStr):判断某个字符串是否以指定的子串结尾。

获取方法

  • int length():获取字符串中字符的个数。
  • char charAt(int index):获取字符串中指定索引位置的字符。
  • String substring(int startIndex):从指定下标开始截取字符串,一直截取到末尾。
  • String substring(int startIndex, int endIndex):从指定下标开始截取字符串,截取到指定下标结束(包括开头不包括结尾)。
  • int indexOf(String subStr):获取子串第一次出现的下标。

转换方法

  • String toLowerCase():将字符串转换为小写字母形式。
  • String toUpperCase():将字符串转换为大写字母形式。
  • char[] toCharArray():将字符串转换为字符数组。

其他方法

  • String trim():去除字符串两端的空格。
  • String[] split(String str):根据指定的字符串进行分割,返回字符串数组。

3 输入流和输出流

在Java程序中,可以使用输入流(InputStream)输出流(OutputStream)来进行数据的读取和写入。而文件输入流和文件输出流则是特定类型的输入流和输出流,用于将数据从Java程序读取到文件中或从文件中写入到Java程序中。

文件输出流的常用类是FileWriter,它是文件的字符输出流,用于将数据以字符形式写入文件中。以下是FileWriter的常用方法:

  • void write(int ch):将一个字符写入文件(可以写字符的ASCII码值)。
  • void write(char[] chs):将一个字符数组写入文件。
  • void write(String s):将一个字符串写入文件。
  • void write(char[] chs, int startIndex, int len):将字符数组的一部分写入文件。
  • void write(String s, int startIndex, int len):将字符串的一部分写入文件。

文件输入流的常用类是FileReader,它是文件的字符输入流,用于从文件中以字符形式读取数据。以下是FileReader的常用方法:

  • int read():读取一个字符。
  • int read(char[] chs):读取一定数量的字符到字符数组中,并返回实际读取的字符个数。

关于文件路径,有两种常见的表示方式:

  1. 相对路径:相对于当前项目的路径。例如,文件名为"test.txt",表示在当前项目的根目录下的"test.txt"文件。
  2. 绝对路径:以盘符开头,表示完整的文件路径。例如,"C:\test.txt"表示在C盘根目录下的"test.txt"文件。

最后,在Java中,当使用new关键字创建一个对象时,该对象会被分配到堆(heap)内存中,而用于引用该对象的变量则保存在栈(stack)内存中。

4 this的作用以及本质

this作用

在Java中,关键字this表示当前对象的引用,它的作用是指代当前正在执行方法的对象。使用this关键字可以实现以下功能:

  • 区分成员变量和方法参数以及局部变量:当方法的参数或局部变量与成员变量同名时,可以使用this关键字来引用成员变量,以便区分它们。
  • 在构造方法中调用其他构造方法:一个类可以有多个构造方法,在其中一个构造方法中可以使用this来调用同类中的其他构造方法,以避免重复代码。
  • 可以将this作为方法的返回值:在某些情况下,我们可能需要将当前对象作为方法的返回值返回,此时可以使用return this;语句。

this本质

this关键字本质上是一个特殊的引用,它指向当前对象的实例。当创建一个类的对象时,每个对象都有自己的一份成员变量。方法内部对成员变量的访问通常通过this来实现。在调用方法时,编译器会隐式地传递一个指向当前对象的this引用,使得我们可以使用this来访问当前对象的成员变量和方法。

总之,this关键字用于指代当前对象,通过它可以访问当前对象的成员变量和方法。它的作用是消除歧义,区分不同作用域下同名的变量,并且可以方便地在方法内部操作当前对象。

小结

this用于区分局部变量和成员变量的同名的情况,this代表一个对象,具体是哪一个对象,那么由方法的调用者决定。

5 匿名对象:

匿名对象是指在创建对象时,不使用变量来引用该对象,而是直接使用new关键字创建一个对象。它的语法形式是new 类名(),其中类名表示所创建对象的类型。

匿名对象具有以下特点:

  1. 只能使用一次:匿名对象在创建后,只能在创建时使用,无法再次被引用或调用。因此,它的作用范围仅限于当前语句或表达式。
  2. 无法被其他代码引用:由于没有变量引用匿名对象,所以无法在其他地方对其进行操作或调用。匿名对象一旦使用完毕,会被垃圾回收器自动回收释放内存。

匿名对象通常用于简单的场景,当我们只需要创建一个对象,而不需要对其进行多次操作或引用时,可以使用匿名对象。例如,在调用某个方法时,如果该方法只需要使用一次创建的对象,那么可以使用匿名对象来传递参数。

需要注意的是,由于匿名对象没有变量引用,所以无法访问该对象的成员变量或调用其方法,除非将其作为参数传递给其他方法。因此,匿名对象的使用场景相对有限,主要是针对一次性的简单操作。

6 继承

概念

继承描述了两个类之间的关系,其中一个类(子类)基于另一个类(父类)进行创建。子类继承父类的属性和方法,可以在此基础上添加新的属性和方法,或者重写父类的方法。

语法

在Java中,使用extends关键字来实现继承关系。通过public class 子类 extends 父类的方式,子类可以继承父类的属性和方法,并且可以进行扩展或重写。

继承的作用

  • 继承使得子类自动拥有父类的可继承的成员变量和成员方法。这样可以提高代码的重用性,子类不需要重新定义父类已有的方法和属性,而是可以直接使用。
  • 继承中子父类成员变量和成员方法的特点: 如果子类和父类中存在同名的成员变量或成员方法,通过子类对象调用时,会优先调用子类自己的成员变量或成员方法。如果子类中没有相应的成员变量或成员方法,则会访问父类中的。

Java中继承的特点

  • Java只支持单继承,一个子类只能有一个直接父类。
  • Java支持多层继承,子类可以继承父类,而父类本身也可以是另一个类的子类。
  • 子类自动继承父类的可继承的成员变量和成员方法,不包括私有(private)修饰的成员。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千寻简

感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值