Java学习经历(第三周)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

面向对象下



提示:以下是本篇文章正文内容,下面案例可供参考

1.Object类

(1)==与equals方法的比较
==:是一个比较运算符
1)既可以判断基本类型,又可以判断引用类型。
2)如果判断基本类型,则判断值是否相等。
3)如果判断引用类型,则判断地址是否相等。
Equals:是Object类中的方法,只能判断引用类型,默认判断地址是否相等,不过可以在子类中重写该方法(例如String)。
例:
String str1 = new String(“zq”);
String str2 = new String(“zq”);
System.out.println(str1.equals(str2));//输出true
(2)toString方法
1)介绍:默认返回:全类名+@+哈希值的十六进制。
2)重写toString方法,当直接输出一个对象时,toString方法会被默认调用。
例如:
在这里插入图片描述
输出
在这里插入图片描述

2.静态变量

2.静态变量
(1)静态变量是该类的所有对象共享的变量,任何一个该类的对象访问它时,取得的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。
(2)语法:访问修饰符 static 数据类型 变量名;
(3)访问方法:类名.变量名或对象名.变量名;
注意事项
(1) 静态变量是该类所有对象共享的,实例变量个对象独享的。
(2) 实例变量则不能通过类名.变量名的方式来访问。
(3) 静态变量在类加载时就初始化了,其实没有创建对象,只要类加载了,就可以使用静态变量。
例如:
在这里插入图片描述
输出:
在这里插入图片描述

3.静态方法

(1)语法:
访问修饰符 static 返回类型 方法名(){};
(2)调用:
类名.类方法名();或对象名.类方法名();
(3)注意事项
1) 静态方法和普通方法都是随着类的加载而加载,将结构信息储存在方 法区。
2) 静态方法不允许有和对象有关的关键字,如this和super。
3) 静态方法只能访问静态变量或静态方法。
4) 普通成员方法既可以访问非静态成员也可以访问静态成员。
开发自己的工具类时,可以将方法做成静态的,方便调用。
例如
在这里插入图片描述
输出 在这里插入图片描述

4.代码块

(1)介绍:又称为初始化块,属于类的成员,只有方法体,不能显示调用,而是加载类或创建对象时隐式调用,相当于构造器的补充,可以做初始化操作。
(2)语法:
(修饰符){
代码
};
(修饰符只能是不写或static)
(3)类什么时候被加载
1)创建对象实例时(new)。
2)创建子类对象实例,父类也会被加载。
3)使用类的静态成员时。
(4)注意事项:
1) static代码块作用是对类进行初始化,随类的加载而执行,且只执行一次。
2) 普通代码块,每创建一个对象,就执行。
3) 静态相关的代码块是优于构造器和普通代码块执行的。
4) 静态代码块只能调用静态成员,普通代码块可以调动任意成员。
(5)创建一个子类对象时的调用顺序
1) 父类的静态代码块和静态属性。
2) 子类的静态代码块和静态属性。
3) 父类的普通代码块和普通属性初始化。
4) 父类的构造器。
5) 子类的普通代码块和普通属性初始化
6) 子类的构造器。
演示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输出
在这里插入图片描述

5.final关键字

(1) 使用情况
1) 当不希望类被继承时,可以用final修饰。
2) 当不希望父类的某个方法被子类重写时,可以用final修饰。
3) 当不希望类的某个属性的值被修改,可以用final修饰。
4) 当不希望某个局部变量被修改,可以用final修饰。
(2)细节
1) final修饰的属性又叫常量,在定义时必须赋初值,并且以后不能再修改。
2) final类不能继承,但可以实例化对象,如果类不是final类,但含有final方法,可以被继承。
3) final不能修饰构造器。
4) final和static往往搭配使用不会导致类加载,效率更高。
例如: 在这里插入图片描述
输出
在这里插入图片描述

6.抽象类

(1) 介绍
1) 用abstract关键字来修饰一个类时,这个类就叫抽象类.
访问修饰符 abstract 类名{
}
2) 用abstract关键字来修饰一个方法时,这个方法就是抽象方法。
访问修饰符 abstract 返回类型 方法名(参数列表);(没有方法体)
(2) 细节
1) 抽象类不能被实例化。
2) 抽象类可以没有abstract方法。
3) 一旦类包含abstract方法,则这个类必须声明为abstract
4) 抽象方法不能有主体,不能实现。
5) 如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非该类本事也是一个抽象类。
6) 抽象方法不能用private、final、static修饰。
例如
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输出
在这里插入图片描述

7.接口

(1) 介绍:接口把一些没有实现的方法,封装到一起,当某个类要使用的时候。再将这些方法写出来。接口是更加抽象的类,比继承要更加的灵活。
(2) 语法
interface 接口名{
属性;
方法;
}
Class 类名 implements 接口{
特有的属性;
特有的方法;
必须实现的接口的抽象方法;
}
(3) 细节
1) 接口不能被实例化。
2) 接口的所有方法都是public,可以不用abstract修饰
3) 普通类实现接口,必须将该接口的所有方法都实现,抽象类实现接口,可以不用实现接口的方法。
4) 一个类可以同时实现多个接口。
5) 接口中的属性,是public static final修饰的
6) 接口中属性的访问形式:接口名.属性名
7) 接口不能继承其他的类,但是可以继承别的接口
8) 接口的修饰符只能是public或默认。
例如:
在这里插入图片描述
在这里插入图片描述

输出
在这里插入图片描述

8.IDEA部分快捷键

(1) 删除当前行, 默认是 ctrl + Y。
(2) 添加注释和取消注释 ctrl + / (第一次是添加注释,第二次是取消注释)。
(3) 快速格式化代码 ctrl + alt + L
(4) 快速运行程序 自己定义 alt + R
(5) 生成构造器等方法 alt + insert (提高开发效率)
(6) 查看一个类的层级关系 ctrl + H 。
(7) 将光标放在一个方法上,输入 ctrl + B , 可以定位到方法 。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值