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

学习记录之Java学习笔记3

1. 多态 (Polymorphism)

多态是面向对象编程的一个核心特性,它允许我们用一个类型实体(变量、方法或对象)处理不同类型的多个数据类型。在Java中,多态主要通过以下两种方式实现:

方法重载 (Overloading):同一个类中可以有多个同名的方法,但参数列表必须不同(参数个数、类型或顺序不同)。这使得同一个方法名可以根据传入的不同参数执行不同的操作。

  public class Example {

      public void display(String text) {

          System.out.println("Displaying text: " + text);

      }

      public void display(int number) {

          System.out.println("Displaying number: " + number);

      }

  }

方法重写 (Overriding):子类可以重新定义父类中的方法。当子类对象调用这个方法时,将执行子类中定义的方法版本。这是实现运行时多态的一种方式。

 

  public class Animal {

      public void sound() {

          System.out.println("Some generic sound");

      }

  }

  public class Dog extends Animal {

      @Override

      public void sound() {

          System.out.println("Woof!");

      }

  }

2. 内部类 (Inner Classes)

内部类是定义在一个类内部的类。根据其定义的位置和是否使用static修饰符,内部类可以进一步细分为:

成员内部类:作为外部类的一个成员。

静态内部类:使用static修饰符定义的内部类。

局部内部类:定义在一个方法的范围内。

匿名内部类:没有名称的内部类,通常用于立即创建对象。

 3. 面向对象的基本特征

面向对象编程的主要特征包括:

封装 (Encapsulation):隐藏对象的具体实现细节,只暴露必要的接口给外部对象。封装通常通过private访问修饰符以及提供公共的getter和setter方法来实现。

继承 (Inheritance):一个类可以继承另一个类的属性和方法。继承支持代码复用。

多态 (Polymorphism):如前所述,允许使用一个接口处理多种数据类型。

 4. `this`, `final`, `super`

this关键字:用来引用当前对象的实例。它可以在构造函数中传递给其他构造函数,也可以用来区分成员变量和方法参数。

  public class Person {

      private String name;

      public Person(String name) {

          this.name = name; // 使用this关键字来区分成员变量name和方法参数name

      }

  }

final关键字:可以用来声明不可变的变量(常量),也可以用来防止一个类被继承。

  public final class ImmutableClass { ... } // 不可被继承的类

super关键字:用来访问父类的成员变量或方法,特别是在子类覆盖了父类的方法时。

  public class Animal {

      public void sound() {

          System.out.println("Generic sound");

      }

  }

  public class Cat extends Animal {

      @Override

      public void sound() {

          super.sound(); // 调用父类的方法

          System.out.println("Meow!");

      }

  }

5. 访问权限

Java中有四种访问级别:

private:只能在声明它的类内部访问。

默认(无修饰符):在同一包内可见。

protected:在声明它的类及其子类以及同一包内的类可见。

public:完全公开,任何地方都可以访问。

 

6. JavaBean

JavaBean是一种遵循特定编码约定的Java类,主要用于封装数据。这些类通常具有私有字段和公共的getter和setter方法,以便外部对象可以访问和修改这些字段。

public class User implements Serializable {

    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;

    }

 


http://www.mrgr.cn/news/21334.html

相关文章:

  • Python教程(二十) : 十分钟入门【PyQt6】
  • Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光
  • 2024年9月6日嵌入式学习
  • FSMC
  • LeetCode 每日一题 2024/9/2-2024/9/8
  • Unity Adressables 使用说明(四)分发远程内容(Distribute Remote Content)
  • 人工智能在胃癌中的最新研究进展|顶刊速递·24-09-07
  • 【数学分析笔记】第3章第1节 函数极限(6)
  • 线性表的定义和基本操作
  • 【ShuQiHere】从残差思想到 ResNet:深度学习的突破性创新
  • Java中等题-整数替换(力扣)
  • js react 基础笔记 (1)
  • C和C++内存管理
  • HTML入门
  • 图像去噪:使用DAMRmF算法
  • Selenium 实现事件监听
  • 《黑暗之魂2:原罪学者》是什么类型的游戏 《黑暗之魂》可以在苹果Mac电脑上玩吗?
  • C++入门10——stack与queue的使用
  • 浏览器插件快速开启/关闭IDM接管下载
  • 久久派安装启用USB摄像头(基于node-red)