Java 基础知识

一、类型

 1 public class Main {
 2     public static void main(String[] args) {
 3     int[] int01 = new int[]{1,2,3};
 4     System.out.println(int01[0]);
 5     int01[2] = 4;
 6 
 7     // ArrlyList
 8     ArrayList<String> str01 = new ArrayList<String>();
 9     str01.add("1");
10     str01.set(0,"12");
11     str01.get(0);
12     str01.remove(0);
13     str01.size();
14     
15     // HashMap
16     HashMap<String,String> map01 = new HashMap<String,String>();
17     map01.put("1","1");
18     System.out.println(map01.get("1"));
19     map01.remove("1");
20     map01.forEach(( k,v) -> System.out.println(k + " " + v));
21     
22     // list.of
23     List<String> list01 = List.of("1","2","3");
24     // map.list
25     Map<String,String> map02 = Map.of("1","1","2","2");
26     
27     }
28 }
View Code

 二、面向对象-构造器

// 构造器名称必须和类名一致;
// 构造器,对象创建就调用;
// 构造器没有返回值;
// 应用场景,创建对象,完成对对象成员变量(属性)的初始化赋值
// 类,默认自带一个构造器
// 如果定义一个有参数的构造器,无参的构造器就没有了。
// 如果想用无参数的构造器,必须手动写一个无参数的构造器。
// 可以Student s = new student(); s.name="xx",这样不方便,用构造器更加方便

 三、面向对象-静态变量

// 静态变量
// 静态变量属于类,不属于某个对象,只加载一份
// 实例变量属于对象,每个对象都有一份
// 静态变量在类加载时初始化,实例变量在对象创建时初始化
// 静态变量可以通过类名直接访问,也可以通过对象名访问

 

四、面向对象-静态方法

// 静态方法
// 应用场景,做了一个功能,不访问对象数据
// 静态方法可以访问静态成员,不可以访问实例成员
// 实例方法,可以访问静态成员和实例成员
// 静态方法,不可以出现this关键字
// 静态方法,不可以被重写

四、面向对象-继承

// 继承
// 1.单继承
// 2.子类继承父类,则子类会拥有父类的所有属性和方法
// 3.子类可以重写父类的方法
// 4.子类与父类,方法、属性一致,用super.调用父类的方法、属性
// 5、子访问父,先找子后找父

 

四、面向对象-重写

// 重写
// 子类重写父类方法,权限必须>=父类权限
// 重写方法必须和父类方法完全一致,包括返回值类型,方法名,参数列表
// 重写方法不能是private\final\static

五、面向对象-重写-子类调父类构造器

// 子类构造器先调用父类构造器,再调用子类构造器

 

六、面向对象-重写-构造器this, 调兄弟构造器

 this 调用兄弟构造器

this() 、super() 必须写在构造器第一行,两者不能同时出现

 

七、面向对象-多态

// 多态
// 有继承关系;重写;父类引用子类
// 多态下,不能使用子类独有方法
// 调方法,调的是子类的
// 调属性,调的是父类的
// 子类调自己独有方法,可以用强制转化
// 强制转换前,用instanceof判断类型
 1 class Person{
 2     String name = "Person name";
 3     void run(){
 4         System.out.println("Person run..");
 5     }
 6 
 7 }
 8 public class Student extends Person{
 9     String name = "Student name";
10     @Override
11     void run(){
12         System.out.println("Person run..");
13     }
14 
15     void sleep(){
16         System.out.println("sleep run..");
17     }
18 
19 }
20 class Teacher extends Person{
21     String name = "Teacher name";
22     @Override
23     void run(){
24         System.out.println("Teacher run..");
25     }
26 
27     void sleep(){
28         System.out.println("Teacher sleep..");
29     }
30 
31 }
View Code
 1 public class Main {
 2     public static void main(String[] args) {
 3     Person t = new Teacher();
 4     Person s = new Student();
 5     t.run();
 6     s.run();
 7     System.out.println(t.name);
 8     System.out.println(s.name);
 9 //    System.out.println(s.sleep()); 多态下,不能使用子类独有方法
10     Student s1 = new Student();
11     // 强制转换
12     Student s2 =  (Student)s1;
13     s1.sleep();
14     // 检查类型
15         if (t instanceof Person) { // 判断t是否是Person类型
16             Teacher t3 = (Teacher) t;
17             t3.sleep();
18             }
19 
20     }
21 }
22 
23 Teacher run..
24 Person run..
25 Person name
26 Person name
27 sleep run..
28 Teacher sleep..
View Code

 

八、枚举

九、抽象类

 

 

 十、接口

// 接口
// 接口中的成员变量默认是public static final的
// 接口中的成员方法默认是public abstract的
// 接口中的成员方法不能有方法体
// 接口不能创建对象
// 接口是被类实现
// 类必须重写完接口里的所有抽象方法,不然将类定义成抽象类

 

 十一、接口定义方法

default、private、static

 

 

posted @ 2025-06-14 10:00  东方不败--Never  阅读(7)  评论(0)    收藏  举报