【JavaSE】复习总结
🎁个人主页:User_芊芊君子
🎉欢迎大家点赞👍评论📝收藏⭐文章
🔍系列专栏:【Java】内容概括
文章目录:
- 一、Java输入输出
- 1.控制台输出
- 2.控制台输入
- 二、类和对象
- 1.类的定义
- 2.对象的创建和使用
- 3.构造方法
- 4.this 关键字
- 5.包
- 6.封装
- 三、继承
- 1.继承的实现
- 2.方法重写(Override)
- 3.super 关键字
- 三、多态
- 四、抽象类和接口
- 1.抽象类
- 2.接口
一、Java输入输出
1.控制台输出
public static void main(String[] args) {System.out.println("hello");}
2.控制台输入
使用Scnner
类,需要导入import java.util.Scanner;
//创建一个Scanner对象scanner,并将其与标准输入流System.in关联起来Scanner scanner = new Scanner(System.in);System.out.println("name:");
//调用Scanner对象的nextLine()方法,读取输入的内容,并储存到变量name中String name = scanner.nextLine();
二、类和对象
Java是面向对象的编程语言,类是对事物的抽象描述,对象是类的实例。
1.类的定义
使用class
关键字定义类,类中包含成员变量和成员方法
public class Person {String name;int age;public void action(){System.out.println("play");}
}
2.对象的创建和使用
static修饰的静态变量只能有一个
对象的创建也就是实例化
public class Person {String name;int age;public void action(){System.out.println("play");}public static void main(String[] args) {//Person:类名//person:变量,用来引用new Person()创建出来的对象Person person = new Person();person.name = "baby";person.age = 20;person.action();}
}
3.构造方法
构造方法用于对象的初始化
,与类名同名,无返回值类型。
- 如果没有显式定义构造方法,编译器会提供一个默认的无参构造方法;
- 如果定义了构造方法,默认无参构造方法会被覆盖
public class Student {String name;int age;//有参构造方法public Student(String name,int age){//把构造方法的参数name的值赋给类的成员变量namethis.name = name;this.age = age;}
}
4.this 关键字
this
表示当前对象的引用
- 可用于区分成员变量和局部变量(名称冲突时)
- 也可以在构造方法中调用其他构造方法,this(参数列表),必须位于构造方法第一行
public class Car {String brand;//品牌int price;//价格public Car(String brand,int price){this.brand = brand;this.price = price;}public Car(String brand){//调用有参构造方法this(brand,10000);}public void display(){System.out.println(this.brand+this.price);}public static void main(String[] args) {Car car = new Car("宝马");car.display();}
}
5.包
Package 是Java中一个组织 类 的方式,用于防止类名冲突和提高代码可持续性
自定义包:
6.封装
封装
是面向对象的三大特性之一,将类的属性私有化(用 private
修饰),提供公共的getter
和setter
方法分别来访问和修改属性,因此内部实现细节,提高代码安全性和可维护性。
public class User {private String username;private String password;//读取用户名public String getUsername(){return username;}//修改用户名public void setUsername(String username){this.username = username;}//读取密码public String getPassword(){return password;}//修改密码public void setPassword(String password){this.password = password;}
}
三、继承
继承是面向对象的三大特性之一,允许一个类(子类)继承另一个类(父类)的属性和方法,实现代码复用。Java中类只支持单继承,但可以多层继承。
1.继承的实现
使用extends
关键字实现继承
public class Animal {String name;public void eat() {System.out.println(name + "eating");}
}
public class Dog extends Animal{public void bark(){System.out.println(name+"汪汪汪~");}public static void main(String[] args) {Dog dog = new Dog();dog.name = "大黄";dog.eat();dog.bark();}
}
2.方法重写(Override)
子类可以重写父类的方法,要求方法名,参数列表,返回值类型相同(或者子类的返回值类型是父类的子类型),访问权限不能比父类严格。
public class Person {public void study(){System.out.println("读");}
}
public class Personadd extends Person{//Ctrl+O@Overridepublic void study() {System.out.println("写");}
}
3.super 关键字
super
用于访问父类的属性,方法和构造方法。在子类构造方法中,super()
或super(参数列表)
用于调用父类的构造方法,且必须位于子类构造方法的第一行。
public class Father {String familyName ="张";public Father(){System.out.println("父类无参构造方法");}public void showFamilyname(){System.out.println("家族姓氏"+familyName);}
}
public class Son extends Father{public Son(){//调用父类的无参构造方法super();}public void showInfo(){//调用父类的showFamilyname方法super.showFamilyname();//访问父类的familyname变量System.out.println("子类中访问父类姓氏"+super.familyName);}
}
三、多态
多态是面向对象的三大特性之一,指同一个行为有多种不同表现形式。多态的实现需要满足:继承
,方法重写
,父类引用指向子类
。
public class Shape {public void draw(){System.out.println("绘制图形");}
}
public class Circle extends Shape{@Overridepublic void draw() {System.out.println("绘制圆形");}
}
public class Rectangle extends Shape{@Overridepublic void draw() {System.out.println("绘制矩形");}
}
public class PolymorphismDemo {public static void main(String[] args) {//父类的引用指向子类对象Shape shape1 = new Circle();Shape shape2 = new Rectangle();shape1.draw();//绘制圆形shape2.draw();//绘制矩形}
}
【核心知识点总结】
继承
:子类复用父类的结构,同时可扩展或修改父类行为(如重写 draw() )。
方法重写
:子类用与父类“方法名、参数列表、返回值”一致的方法,替换父类的实现,实现定制化逻辑。
多态
:父类引用可以指向子类对象,调用方法时,会根据“实际对象的类型”执行对应的(子类重写的)方法,让代码更灵活、可扩展。
四、抽象类和接口
抽象类和接口是实现抽象和多态的重要手段
1.抽象类
- 用abstract 修饰,不能实例化,用于定义一组相关子类的共同行为和属性,是子类的“模板”;
- 可含抽象方法(无方法体,子类必须实现所有的抽象方法)和普通方法
- 子类要先构造父类的构造方法
public abstract class Animaladd{protected String name;//protected修饰,子类可直接访问public abstract void makeSound();//抽象方法,无方法体//普通成员方法,设置mzpublic void setName(String name){this.name = name;}
}
public class Dogadd extends Animaladd{//重写抽象父类的makeSound()方法,否则会报错@Overridepublic void makeSound() {System.out.println(name+"汪汪汪~");}}
public class Testadd {public static void main(String[] args) {//创建Dog对象,子类可实例化,抽象父类不行,不能直接newDogadd dogadd = new Dogadd();//调用继承的setName()方法设置名字dogadd.setName("旺财");//调用重写的makeSound()方法dogadd.makeSound();}
}
2.接口
- 使用
interface
关键字定义接口,JDK 8之后支持默认方法,静态方法;- 类用
implements
实现接口,需实现所有的抽象方法,一个类可实现多个接口;- 接口间可通过extends多继承
interface IFlyable {//抽象方法void fly();default void land(){System.out.println("降落");}
}
public class Bird implements IFlyable{@Overridepublic void fly() {System.out.println("飞翔");}
}