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{
@Override
public 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);
}
}