# java编程基础 **Repository Path**: sdfuful/javaedu ## Basic Information - **Project Name**: java编程基础 - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-27 - **Last Updated**: 2023-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # java编程基础 #### 介绍 本仓库是关于html5和CSS3的教学案例仓库,仅用于教学内部使用 #### 软件架构 java基础面向对象 #### 教学笔记 1. JDK7以上新特性:switch的case条件支持字符串比较,但不建议使用 ```java String str = "abc"; switch (str){ case "abc": System.out.println("abcOK"); break; case "bcd": System.out.println("bcdOK"); break; default: System.out.println("not ok"); } ``` 2. 方法 2.1 一般的方法结构 修饰关键字(private/public) 返回值类型(void/String/int...) 方法名 (参数列表) ```java public void setStuCode(String parStuCode){ stuCode = parStuCode; } ``` ```java public String getStuCode(){ return stuCode; } ``` 2.2 构造方法 修饰关键字(public) 构造方法名(与类名必须一致) (参数列表) 2.2.1 无参数构造方法(一般默认可不声明,但建议必须显式声明) ```java public Student() { } ``` 2.2.2 有参数构造方法 ```java public Student(String stuSex) { this.stuSex = stuSex; } public Student(String stuCode, String stuName, String stuSex, int stuAge) { this.stuCode = stuCode; this.stuName = stuName; this.stuSex = stuSex; this.stuAge = stuAge; } public Student(String stuCode, String stuName, String stuSex) { this.stuCode = stuCode; this.stuName = stuName; this.stuSex = stuSex; } ``` ##### 关于staic变量、方法等说明 1. static变量 ```java public static String AREA = "苏K"; ``` **调用** 类名.静态变量 ```java Car.AREA ``` 说明: 1.1 静态变量,可以被直接访问,而不需要实例类(new) 1.2 静态可以在非静态方法中使用 使用场景: 一般常用于需要直接被调用或访问变量 定义规范:全部大写 2. static方法 ```java public static void out(){ System.out.println("这是静态方法"); } ``` **调用** 类名.静态方法 ```java Car.out(); ``` 说明: 2.1 静态方法可直接调用而非实例类(new) 2.2 静态方法只能使用静态变量,非静态无法使用 使用场景: 2.1 一般用于工具类中的方法 2.2 当构造方法被私有化时,使用静态方法初始化类(暂时可不需要理解,属于设计模式范畴) 3. 静态块 ```java static { System.out.println("这里是静态块"); } ``` **调用** 无需手动调用,使用类时,即被调用,有且仅有一次 说明: 3.1 无需调用 3.2 常用用于静态变量的初始化或赋值,非静态变量无法再代码块中使用 3.3 静态代码优先于构造方法被首先调用 使用场景:一般用于大批量静态变量初始化时使用 4. 常量 ```java public static final int STATE_OPEN = 1; public static final int STATE_OFF = 0; ``` **调用** 与静态变量调用方式一致 说明: 4.1 常量必须被初始化 4.2 常量不能被修改(重新赋值) 使用场景:需要要常量时。比如:计算类常量值,如π值 定义规范:全部大写定义,另外,应定义的名称通俗易懂 ##### 特殊方法-方法重载 ```java public void ok(String s){ System.out.println(s); } public void ok(String s,String s2){ System.out.println(s + s2); } public void ok(String s,int i){ System.out.println(s + i); } ``` 构造方法重装 ```java public Car(){ System.out.println("我是car的无参数构造方法"); } public Car(String carCode) { this.carCode = carCode; } ``` **注意** 1. 方法名一致 2. 参数列表个数或类型必须不一致 3. 方法的重载在一个类中(区别与方法的重写) ##### 特殊方法-方法重写 1. 重写发在父子类间,即子类重写父类的方法 2. 重写的方法要求: 2.1 方法名一致 2.2 参数列表一致 2.3 返回类型一致 2.4 重写的方法访问权限不低于被重写的方法 ```java public class DongWu { public void jiao(){ System.out.println("动物会叫!!!"); } } public class Dog extends DongWu{ @Override public void jiao() { System.out.println("汪汪"); } } ``` ##### 特殊的类-抽象类 1. 定义:类修饰词是abstract的即为抽象 ```java public abstract class Car { } //或 public abstract class Car2 { public abstract void run(); } ``` 说明: 1. 抽象类中可以没有抽象方法,但抽象方法必须在抽象类中 2. 抽象类不能实例化,即无法new 3. 抽象类的子类必须重写抽象方法 ```java public class Audi extends Car2{ @Override public void run() { System.out.println("我是奥迪RS7,跑得快!"); } } ``` ##### 特殊的类-接口 定义:全部是抽象方法的抽象类,我们称之为接口 #### 多态 ##### 静态多态 定义:new子类,让它是父类类型 ```java Person chinese = new Chinese(); ``` ##### 多态-动态后期绑定 实现方式:子类重写父类的方法,其业务方法的参数是父类类型 ```java public class Person { public void eat(){ System.out.println("人吃饭!"); } } public class Chinese extends Person{ public void eat(){ System.out.println("中国人用筷子吃饭!"); } } public class FanJun { public void qingEat(Person person){ person.eat(); } } ``` ### 重要:在JAVA中所有的类都是Object的子类,无需显示继承 #### 集合框架 1. 添加元素 2. 删除元素 3. 遍历集合 4. 集合大小 5. 获取元素 ##### List之ArrayList #### 说明 1. 本案例集只限于教学课堂笔记使用 2. 本案例不接受Pull Request