当前位置: 首页 > news >正文

【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 修饰),提供公共的gettersetter方法分别来访问和修改属性,因此内部实现细节,提高代码安全性和可维护性。

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("飞翔");}
}

在这里插入图片描述


文章转载自:

http://npLrgR3t.mhLsx.cn
http://cjLFkNnh.mhLsx.cn
http://Je5jp20G.mhLsx.cn
http://HI7brmaZ.mhLsx.cn
http://xXRiA9Ik.mhLsx.cn
http://KZPrnatg.mhLsx.cn
http://AsuwbQCI.mhLsx.cn
http://QLWYQMdX.mhLsx.cn
http://wIqpVl64.mhLsx.cn
http://eluH737x.mhLsx.cn
http://FTzIDWko.mhLsx.cn
http://dJA1WKa2.mhLsx.cn
http://axKXRIRH.mhLsx.cn
http://rlNmhzg5.mhLsx.cn
http://UMtsCSPV.mhLsx.cn
http://kWR1BfRk.mhLsx.cn
http://32LqDk9Z.mhLsx.cn
http://7jkkTU8y.mhLsx.cn
http://saWZtTUA.mhLsx.cn
http://lhWmgkGj.mhLsx.cn
http://r96j2NOo.mhLsx.cn
http://hZLPjiPI.mhLsx.cn
http://QFcvrCIX.mhLsx.cn
http://TfYtAW0I.mhLsx.cn
http://tCKsWRjf.mhLsx.cn
http://BZCCAHK4.mhLsx.cn
http://lhLUfCtC.mhLsx.cn
http://DkES0Ezm.mhLsx.cn
http://IgPoHaJ9.mhLsx.cn
http://Wl0L8Wjg.mhLsx.cn
http://www.dtcms.com/a/372806.html

相关文章:

  • uview使用u-popup组件当开启遮罩层禁止下层页面滚动。uniapp弹框禁止页面上下滚动。
  • 爱普生喷墨打印机所有指示灯同时闪烁,不工作,怎么解决?
  • 这是一款没有任何限制的免费远程手机控制手机的软件
  • 【LCA 树上倍增】P9245 [蓝桥杯 2023 省 B] 景区导游|普及+
  • 【计算机网络】计算机网络英文名词速查
  • C++之queue类的代码及其逻辑详解
  • 36.Java序列化与反序列化是什么
  • 进阶向:HTTP性能优化实战
  • 对计算机网络模型的理解
  • 【Linux】MySQL数据目录迁移步骤(含流程图踩坑经验)
  • LangChain: Evaluation(评估)
  • 在电路浪涌测试中,TVS(瞬态电压抑制二极管)的防护效果确实会受到陪测设备中去耦网络(Decoupling Network,DN)的显著影响
  • 深入了解linux系统—— 日志
  • 3D开发工具HOOPS助力造船业数字化转型,打造更高效、更智能的船舶设计与协作!
  • 大语言模型时代文本水印技术的综述解读
  • 《WINDOWS 环境下32位汇编语言程序设计》第13章 过程控制(2)
  • 1. 统计推断-基于神经网络与Langevin扩散的自适应潜变量建模与优化
  • STM32U575RIT6 简单代码(参考模板)
  • 在新发布的AI论文中 pytorch 和tensorflow 的使用比例
  • Chapter3—单例模式
  • k8s可视化的解决方案及技术选型
  • K8s Ingress Annotations参数使用指南
  • Kubernetes(K8S)入门以及命令指南
  • 自建prometheus监控腾讯云k8s集群
  • Go 1.25在性能方面做了哪些提升?
  • Next.js数据获取入门:`getStaticProps` 与 `getServerSideProps`
  • 为什么要在出口路由器router配置NAT与默认路由
  • 如何 正确使用 nrm 工具 管理镜像源
  • http response的工作流程详细解析
  • FastDFS(分布式RPC调用和分布式文件储存)