JAVA的所有知识点
- 一、基础的数组、数据类型、输入输出
- 二、类与对象
- 1. 三大特征
- (1) 封装
- (2)继承
- (3)多态
- 2. 类的实例化
- (1) 类通过NEW来创建
- (2) 类的继承
- (3)类的封装
一、基础的数组、数据类型、输入输出
这些可以看看其他的,过于基础
二、类与对象
1. 三大特征
(1) 封装
通过private、default、protected、public关键字实现属性或方法的封装,仅对外提供公共访问方式
例如,定义一个Strudent对象,为了提供对外访问方式则使用get set方法
定义一个Strudent类
package com.itheima.springboottest;public class Strudent {private String Username;public String getUsername() {return Username;}public void setUsername(String username) {Username = username;}
}
这个strudent的类中,Username是私有的,直接使用会报错,通过公共的get set方法可以提供给其他类进行使用
定义一个Test类进行调用获取strudent
package com.itheima.springboottest;public class Test {public static void main(String[] args){Strudent student = new Strudent();student.setUsername("zhangyuan");String username = student.getUsername();System.out.println(username);}
}
运行Test类可以获得名字:zhangyuan的结果如图
这就是一种封装
(2)继承
extends
(3)多态
- 一个对象变量可以指向多种实际类型对象的现象称为:“多态”
- 三个必要条件:继承、方法的重写、父类引用指向子类对象
- Java中多态的实现方式:接口实现,继承父类进行方法重写,同一个类中进行方法重载,父类引用指向子类对象
2. 类的实例化
(1) 类通过NEW来创建
- 创建一个类
类的定义格式
[修饰符] class 类名 [extends 父类名] [implements 接口名]{//类体,包括类的成员变量和成员方法}
- 创建一个已有类的实例
Strudent student = new Strudent();
(2) 类的继承
- 默认继承object
- 类的继承格式
class 父类{}
class 子类 extends 父类{}
例如定义一个父类parents
public class Parents {private int age;public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Parents(int age) {this.age = age;}public Parents() {}public void myPrint(){System.out.println("我是父类的myprint方法");}
定义一个子类去继承父类的公有属性
package com.itheima.springboottest;
public class Son extends Parents{
public static void main(String[] args) {
Son son = new Son();
// son.age=3; 子类只能有父类公有的属性,私有属性没有
son.myPrint();
}
}
- 重写父类方法
使用与父类中方法一模一样方法名
Son.java
package com.itheima.springboottest;public class Son extends Parents{public static void main(String[] args) {Son son = new Son();
// son.age=3; 子类只能有父类公有的属性,私有属性没有son.myPrint();}@Override # 这是在springboot框架中指明子类重写父类方法的注解public void myPrint() {System.out.println("我是子类重写父类myprint方法");}
}
(3)类的封装
- 修改属性的可见性为private
- 创建getter/setter方法用于封装
- 在 getter/setter方法中加入属性控制语句
package com.itheima.springboottest;public class Parents {private int age;private int name;public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getName() {return name;}public void setName(int name) {this.name = name;}public Parents(int age) {this.age = age;}public Parents() {}public void myPrint(){System.out.println("我是父类的myprint方法");}
}
还可以对setter方法修改
例如:对年龄为0的进行打印
父类
package com.itheima.springboottest;public class Parents {private int age;private int name;public int getAge() {return age;}public void setAge(int age) {if (age <= 0){System.out.println("年龄不符合要求");}else {this.age = age;}}public int getName() {return name;}public void setName(int name) {this.name = name;}public Parents(int age) {this.age = age;}public Parents() {}public void myPrint(){System.out.println("我是父类的myprint方法");}
}
子类
package com.itheima.springboottest;public class Son extends Parents{@Overridepublic void myPrint() {System.out.println("我是子类重写父类myprint方法");}public void printAge(Son son){System.out.println(son.getAge());}public static void main(String[] args) {Son son = new Son();
// son.age=3; 子类只能有父类公有的属性,私有属性没有son.myPrint();son.setAge(0);son.printAge(son);}
}