学习编程是一项让人愉悦,充满惊喜和挑战的任务。尽管它的复杂性可能会让你感到沮丧,而错误的代码也会让你觉得无从下手,但请明白这都是正常的情况。没有人能一蹴而就,成功总是建立在失败和不断改进之上。

类和对象的封装_类和对象

一、什么是类和对象封装

1、定义:

在Java语言中,类和对象封装是两个非常重要的概念。类是一种封装了数据和方法的模板,而对象则是类的实例化对象,具有这个类所描述的属性和方法。

封装指的是将数据和方法包装到一个单元中,以使得类的实现过程对外隐藏,只允许通过特定的接口访问其属性和方法。这样做的优点是可以避免非法访问和误操作,从而提高系统的稳定性和安全性。

2、意义:

类和对象封装是面向对象编程的核心概念之一,对于软件的设计和开发具有重要意义。类和对象封装的主要意义包括以下几个方面:

(1)提高代码复用性:将同一类的属性和方法封装到一个单元(类)中,可以方便地进行代码复用。

(2)降低模块间的耦合度:通过类之间的继承关系、接口实现等方式,使得模块之间的依赖性更为松散,从而提高了代码的可维护性和可扩展性。

(3)隐藏实现细节:通过将类的内部细节封装起来,只暴露必要的公共接口,可以有效地控制外部访问类的成员变量和方法的途径,保证系统安全性和稳定性。

(4)促进并行开发:类和对象的封装允许不同程序员并行地开发不同的函数或方法,同时也允许在同一程序内的不同阶段,分步骤地实现和测试程序。

(5)提高代码的可读性和易于理解性:通过将不同的操作和任务分解到不同的类中,并且仅将最少的必要信息传递给其他类,可以极大地简化程序的逻辑结构,使代码更易于理解和维护。

总之,类和对象封装为软件设计提供了良好的编程架构和模型,通过隐藏实现细节、降低模块耦合度、提高代码复用性等方式,在软件开发中起到至关重要的作用。

二、类和对象封装的实现

1、类的定义和实现:

在Java语言中,我们使用class关键字定义一个类,如下:

public class Person {
    // 公开属性
    public String name;
    public int age;
    // 构造方法
    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }
    // 公开方法
    public void sayHello(){
        System.out.println("Hello, my name is " + name + ". I'm " + age + " years old.");
    }
}

上面这段代码定义了一个Person的类,构造方法不明白是什么的话,可以去看我以前写的博客——《Java的初级认识》网址:https://blog.51cto.com/u_15880518/6186962,这里面有详细的介绍到什么是构造方法。

2、访问权限关键字:

那我们封装,到底是怎么一回事呢?这就不得不介绍到我们设定访问权限的关键字 

在Java语言中,有四种访问控制修饰符:publicprivateprotected和默认访问(不写任何关键字)。其具体作用如下所示:

  • public(公共的):访问控制符:没有任何限制,可以从类的外部访问。
  • private(私有的):访问控制符:只能在类的内部被访问,无法从类的外部直接进行访问。
  • protected访问控制符:只能在类的内部和其子类中访问。
  • 默认访问控制符:只能在类内部和同包下的其他类中进行访问。

一般在Java里面,用的最多的就是公共的和私有的这两个极端,需要设置权限的话,直接用就好了,比如上面代码,改成下面这样:

public class Person {
    // 私有属性
    private String name;
    private int age;
    // 构造方法
    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }
    // 公开方法
    public void sayHello(){
        System.out.println("Hello, my name is " + name + ". I'm " + age + " years old.");
    }
}

这样子,名字和年龄就变成私有属性了,只能在Person这个类内部使用。

3、对象的创建与使用:

对于一个类,我们可以通过创建对象来访问他的属性和方法。在Java语言中,我们可以使用new关键字来创建对象,如下:

Person p1 = new Person("Alice", 25);
Person p2 = new Person("Bob", 30);

p1.sayHello();
p2.sayHello();

该代码通过new关键字创建了p1、p2两个对象,我们通过点运算符,就可以访问Person里的属性和方法了,如下:

System.out.println(p1.getName()); // 输出 "Alice"
System.out.println(p1.getAge()); // 输出 "25"
p1.sayHello(); // 输出 "Hello, my name is Alice. I'm 25 years old."

不过,这个对象访问也有缺陷,就是被privateprotected修饰的不能被直接访问,如果要访问,只能通过该类内部的方法来访问与修改,如下:

public class Person {
    private String name;
    private int age;
    
    // 修改器(setter)方法
    public void setName(String name){
        this.name = name;
    }

    public void setAge(int age){
        this.age = age;
    }
    
    // 访问器(getter)方法
    public String getName(){
        return name;
    }

    public int getAge(){
        return age;
    }
    
    // 公开方法
    public void sayHello(){
        System.out.println("Hello, my name is " + name 
                           + ". I'm " + age + " years old.");
    }
}

在上述代码中,我们将nameage属性定义为私有属性,并用gettersetter方法来实现对属性的访问和修改。这样,在类的内部可以通过this.namethis.age来访问这两个属性,但是在类的外部无法直接进行访问,以此来提高代码的安全性。

三、总结

类和对象封装是Java语言面向对象编程中非常重要的概念,它们可以帮助我们将数据和方法包装到一个单元中,以实现对数据和过程的保护和控制。在Java语言中,我们可以使用class和访问控制符来实现类和对象封装,从而使得程序更加模块化、安全和可维护。

心灵鸡汤:

写代码的过程可能看起来毫无头绪,但在构思和落实计划时却体现着价值。为了完成一项任务,你可能需要使用多个语言和框架,在遇到挫折的时候保持谨慎和慎重。然而,如果你坚定地前进,不断摸索,那么你将会发现自己能够轻易地理解它们,迅速理解其中的关系,并最终实现自己的目标。

类和对象的封装_Java_02