重构Java基础 (四) | 你关心的java面向对象
发布日期:2021-05-10 06:27:50 浏览次数:26 分类:精选文章

本文共 3859 字,大约阅读时间需要 12 分钟。

Java面向对象编程基础

面向对象

面向对象编程(Object Oriented Programming, OOP)是将现实世界中的对象建模为代码中的类,并利用这些类开发程序。每个对象在程序中都有自己的属性和行为,可以通过方法来操作。类是在程序中组织对象的一种高效方式。

类的概念

一个类可以看作是一个模子,它决定对象将拥有什么样的属性(特征)和行为(方法)。具体而言,类包含了对象的状态和行为的定义。类是类的组织单位,通过类可以避免重复代码,使程序更易维护和扩展。

类的特点

  • 类是对象的类型,它描述了对象的属性和行为。
  • 类可以包含多个对象,只要这些对象具有相同的属性和行为。
  • 类名通常采用英文的形式,并且每个单词的首字母要大写。
  • 类的定义

    类的语法格式如下:

    class 类名 {
    属性定义;
    方法定义;
    }

    类名应与文件名一致,类内只能定义属性和方法。类名需要遵循Java命名规范。

    属性与方法

    属性

    属性(Properties)定义了对象的属性,例如颜色、年龄等。属性可以在类中定义,且可以是基本数据类型或引用数据类型。

    方法

    方法(Methods)描述了对象可以执行的操作。方法的语法格式如下:

    public static void 方法名(参数类型 参数名, 参数类型 参数名…){
    // 方法体
    }

    方法可以指定返回类型,通过return语句返回值。

    类实例化

    类实例化的目的是创建对象。语法格式如下:

    数据类型 变量名 = new 数据类型();

    实例:

    Cat cat = new Cat();

    访问对象属性:

    cat.color; // 访问属性
    cat.eat(); // 调用方法

    类与对象的关系

  • 类是抽象概念,只是一个模板,决定对象的属性和行为。
  • 对象是具体实体,可以通过类进行操作。
  • 类是对象的类型,对象是具体的数据实例。
  • 例如,Dog是一个类,max是一个对象,它是 Dog 类的一个实例。
  • 局部变量与构造器的结构

    局部变量

    局部变量是方法或语句块内定义的变量,存储在栈内存中。局部变量的作用域有限,只能在定义的大括号内使用。

    特点:

  • 作用范围:只在定义的大括号内有效。
  • 存储位置:栈内存。
  • 初始化方式:必须赋值,否则会报错。
  • 生命周期:随着所属括号的结束而消失。
  • 示例:

    class Demo1 {
    public static void main(String[] args) {
    int x = 0;
    if (x > 10) {
    System.out.println(x);
    }
    }
    public static void add() {
    {
    int x = 0;
    }
    // x 在方法体内无法访问,会报错
    }
    public static void add(int a) {
    }
    }

    构造器

    构造器是一个特殊的方法,用于初始化对象。类的构造器没有返回值,也没有void。方法名必须与类名一致。

    默认构造器

    如果没有显式定义构造器,类会自动提供一个默认构造器。默认构造器没有参数。

    有参数的构造器

    可以通过定义参数来初始化对象的属性。如果类有多个构造器,必须显示定义默认构造器。

    示例:

    public class Person {
    public Person() {
    System.out.println("默认构造器调用");
    }
    public Person(String name, int age) {
    this.name = name;
    this.age = age;
    }
    }
    public class TestPerson {
    public static void main(String[] args) {
    Person p = new Person("张三三", 20);
    p.info();
    }
    }

    通过this关键字可以调用本类的构造器,必须放在构造器的第一行。

    单例模式

    单例模式通过私有化构造器和静态方法实现类只有一个对象的创建。例如,懒汉模式在第一次访问时创建对象。

    示例:

    class Singleton {
    private static Singleton instance;
    private Singleton() {
    }
    public static Singleton getInstance() {
    if (instance == null) {
    instance = new Singleton();
    }
    return instance;
    }
    }
    public class TestSingleton {
    public static void main(String[] args) {
    Singleton instance = Singleton.getInstance();
    System.out.println(instance);
    }
    }

    面向对象的三大特征

  • 封装性:通过封装性,保护对象的属性不被外部干扰。属性用private修饰,方法用public访问。
  • 继承性:子类可以继承父类的属性和方法,使用extends关键字实现单继承(通过接口实现多继承)。
  • 多态性:通过不同的对象调用同一个方法,表现为不同的行为,体现于运行时多态。
  • 封装性实现

    封装的实现步骤包括:

  • 将属性设为私有。
  • 提供赋值方法(setget)。
  • 现在的类方法(行为)提供公有接口。
  • 实例:

    public class Test {
    public static void test(String str) {
    System.out.println(str);
    }
    public static void main(String[] args) {
    Test.test("封装");
    }
    }

    继承性实现

    继承性的实现通过extends关键字实现。例如:

    public class Father {}
    public class Son extends Father {
    }

    多态性实现

    多态性的实现通常体现在方法的多态性。例如:

    class Parents {
    public void print() {
    System.out.println("父类");
    }
    }
    class Child extends Parents {
    public void print() {
    System.out.println("子类");
    }
    }
    public class Test {
    public void find(Parents obj) {
    obj.print();
    }
    public static void main(String[] args) {
    Child child = new Child();
    find(child);
    child.print();
    }
    }

    This关键字

    this关键字表示当前对象。在复合属性和方法调用中用到。

    public class Person {
    private String name;
    private int age;
    public void setName(String name) {
    this.name = name;
    }
    public String getName() {
    return name;
    }
    public void setAge(int age) {
    this.age = age;
    }
    public int getAge() {
    return age;
    }
    }
    public class TestPerson {
    public static void main(String[] args) {
    Person p = new Person();
    p.setName("张三三");
    p.setAge(20);
    System.out.println(p.getName() + "," + p.getAge());
    }
    }

    总结

    通过了解面向对象编程的基础知识,我们可以更好地理解和使用Java语言。类是对象的组织单位,属性和方法定义了对象的行为,构造器初始化对象的状态,封装性和多态性增加了程序的灵活性。面向对象编程使程序更具可扩展性和维护性,是现代编程的核心思想之一。

    上一篇:Vue开发入门(二) | 说说Vue全家桶有哪些~
    下一篇:网络技术 | IP地址的作用

    发表评论

    最新留言

    很好
    [***.229.124.182]2025年04月12日 21时39分12秒