- 本笔记用作复习查看用,基础完整总结部分,基础不牢,地动山摇!
| 🔥Java帝国之行🔥 | 地址 |
| — | — |
| Java核心编程总结(一、继承) 🔥 | https://blog.csdn.net/Augenstern_QXL/article/details/116209463 |
| Java核心编程总结(二、抽象类与接口)🔥 | https://blog.csdn.net/Augenstern_QXL/article/details/116209487 |
| Java核心编程总结(三、多态与内部类)🔥 | https://blog.csdn.net/Augenstern_QXL/article/details/116209507 |
| Java核心编程总结(四、异常与线程) 🔥 | https://blog.csdn.net/Augenstern_QXL/article/details/116209529 |
| Java核心编程总结(五、线程池与死锁)🔥 | https://blog.csdn.net/Augenstern_QXL/article/details/116209580 |
| Java核心编程总结(六、常用API与集合)🔥 | https://blog.csdn.net/Augenstern_QXL/article/details/116209607 |
| Java核心编程总结(七、Stream流)🔥 | https://blog.csdn.net/Augenstern_QXL/article/details/116209624 |
| Java核心编程总结(八、IO输入输出流)🔥 | https://blog.csdn.net/Augenstern_QXL/article/details/116209648 |
| Java核心编程总结(九、File文件类)🔥 | https://blog.csdn.net/Augenstern_QXL/article/details/116209674 |
| Java核心编程总结(十、反射) 🔥 | https://blog.csdn.net/Augenstern_QXL/article/details/117744497 |
===========================================================================
-
成员变量(Field:描述类和对象的属性信息的)
-
成员方法(Methpd:描述类或者对象的行为信息的):包括实例方法,静态方法,抽象方法,getter setter 方法
-
构造器(Constructor:初始化一个类的对象并返回引用)
-
默认无参构造器:一个类默认会自带一个无参构造器,即使不写它也存在,但是如果一个类它写了一个构造器,那么默认的无参构造器就被覆盖了!
-
有参构造器
-
代码块
-
内部类
/*
javaBean类: 封装数据
*/
public class Student {
// 两个成员变量 私有
private String name;
private int age;
// 无参构造器
public Student(){
}
// 有参数构造器
public Student(String name,int age){
this.name = name;
this.age = age;
}
// 成员方法: setXX \ gerXX
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age
}
public int getAge(){
return age;
}
public void show(){
System.out.print;n(name + “…” + age);
}
}
-
this
关键字可以用在实例方法和构造器中 -
this
关键字用在方法中,谁调用这个方法,this
就代表谁 -
this
关键字用在构造器上,代表了构造器正在初始化那个对象的引用
/*
javaBean类: 封装数据
*/
public class Student {
// 两个成员变量 私有
private String name;
private int age;
// 无参构造器
public Student(){
}
// 有参数构造器中可以用 this 关键字
public Student(String name,int age){
this.name = name;
this.age = age;
}
// 实例方法中可以用 this 关键字
// 成员方法: setXX \ gerXX
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age
}
public int getAge(){
return age;
}
public void show(){
System.out.print;n(name + “…” + age);
}
}
– 按照有无static
修饰,成员变量和方法可以分为
-
成员变量
-
静态成员变量(类变量)
有static
修饰的成员变量称为静态成员变量,也叫类变量,属于类本身,直接用类名访问即可
- 实例成员变量
无static
修饰的成员变量称为实例成员变量,属于类的每个对象的,必须用类的对象来访问
-
成员方法
-
静态方法
有static
修饰的成员方法称为静态方法,也叫类方法,属于类本身的,直接用类名访问即可
- 实例方法
无static
修饰的成员方法称为实例方法,属于类的每个对象的,必须用类的对象来访问
-
成员变量的访问语法
-
静态成员变量访问:
-
类名.静态成员变量
-
对象.静态成员变量(也可以访问,但是不推荐)
- 实例成员变量的访问:
- 对象.实例成员变量
public class Student {
// 1.静态成员变量: 有static修饰,属于类本身,直接用类名访问即可!
public static String schoolName = “中国”;
// 2.实例成员变量: 无static修饰,属于类的对象,必须用对象访问
private String name;
private int age;
public static void main(String[] args){
// 1.类名.静态成员变量
System.out.println(Student.schoolName);
// 注意:同一个类中访问静态成员变量可以省略类名不写
System.out.println(schoolName);
// 2.对象.实例成员变量
Student s1 = new Student();
s1.name = “孙悟空”;
System.out.println(s1.name);
// 3.对象.静态成员变量(不推荐)
System.out.println(s1.schoolName);
// 静态成员变量属于类,直接用类名访问即可
}
}
-
继承是子类到父类的一种关系
-
子类继承了一个父类,子类就可以直接得到父类的属性(成员变量)和行为(方法)了
-
在java中继承是 “is a” 的关系。Cat extends Animal : 猫是一个动物
-
在java中,子类是更强大的,子类不仅继承了父类的功能,自己还可以定义自己的功能
格式:
子类 extends 父类 {
}
-
子类继承父类,子类就得到了父类的属性和行为,但是并非所有父类的属性和行为等子类都可以继承
-
子类不能继承父类的构造器:子类有自己的构造器(没有争议)
public class ExtendsDemo {
public static void main(String[] args) {
// Cat c = new Cat();
}
class Cat extends Animal{
}
class Animal{
// 父类中的静态成员方法
private void run(){
}
}
就近原则:子类有就找子类,子类没有找父类,父类没有就报错!
-
this
代表了当前对象的引用,可以用于访问当前子类对象的成员变量 -
super
代表了父类对象的引用,可以用于访问父类中的成员变量
public class TestDemo {
public static void main(String[] args) {
Cat cat = new Cat();
cat.show();
}
}
class Animal{
public String name = “动物名称”;
}
class Cat extends Animal {
public String name = “子类名称”;
public void show() {
String name = “局部名称”;
System.out.println(name); //局部名称
System.out.println(this.name); //子类名称
System.out.println(super.name); //父类名称
}
}
- 子类对象优先使用子类已有的方法
-
java建议在重写的方法上面加一个
@override
注解 -
方法一旦加了这个
@override
注解,那就必须是成功重写父类的方法,否则报错!
方法重写的规范:
-
子类重写方法的名称和形参列表必须与父类被重写方法一样
-
子类重写方法的返回值类型声明要么与父亲一样,要么比父类方法返回值类型范围更小
-
子类重写方法的修饰符权限应该与父类被重写方法的修饰符权限相同或者范围更大
-
子类重写方法申明抛出的异常应该与父类被重写方法申明抛出的异常一样或者范围更小
小结:
-
方法重写是子类重写一个与父类申明一样的方法覆盖父类的方法
-
方法重写要加
@override
注解 -
方法重写的核心要求:方法名称,参数列表必须与被重写方法一致!
扩展:
- 静态方法和私有方法是否可以被重写?
答:都不可以,加上@override
会报错
- 子类继承父类,子类的全部构造器默认会先访问父类的无参构造器,再执行子类自己的构造器
- 为什么子类的构造器会先调用父类的构造器?
答:1. 子类的构造器的第一行默认有一个super()
调用父类的无参构造器,写不写都存在
2.当我们调用子类构造器初始化子类对象数据的时候,必须先调用父类构造器初始化继承自父类的属性和行为(先有爸爸,后有儿子)
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-6uI6DneB-1715755178581)]
[外链图片转存中…(img-uTbbUet6-1715755178581)]
[外链图片转存中…(img-jrEZQTeN-1715755178582)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!