博客
关于我
JAVA基础知识之面向对象!
阅读量:794 次
发布时间:2023-01-29

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

Java面向对象之封装与构造方法

面向对象编程中的封装和构造方法是Java的核心概念之一,它们在代码设计中起着重要作用。封装使代码更加安全和具有可维护性,而构造方法则是对象创建和初始化的基础。


一、封装

封装(Encapsulation)是面向对象编程的三大核心特征之一,通过将对象的属性和方法进行归纳,使外部代码无法直接访问对象的内部实现,从而提高代码的安全性和可控制性。

选修一:封装的好处

封装的好处主要体现在以下几个方面:

  • 将变化隔离:属性和方法的变化不影响其他代码模块。
  • 便于使用:用户只需通过提供的公共接口使用对象的功能,无需关心其内部实现。
  • 提高重用性:如果类的属性和方法设计得当,其他类可以轻松复用。
  • 安全性:外部代码无法直接访问对象的私有属性和方法。
  • 选修二:封装原则

    封装原则指的是将对象不需要公开的属性和方法完全隐藏,只对外公开一些方法(如getters和setters),供外部代码调用。封装原则是面向对象编程中第一定律,是开发者在设计类时必须遵循的基本规则。


    二、类的成员

    类是面向对象编程的核心单元,一个类中可以包含成员变量和方法。成员变量对应于事物的属性,方法对应于其行为。以下是类中可以定义的成员类型:

  • 成员变量:定义在类中,属于对象的属性。
  • 成员方法:定义在类中,属于对象的行为。
  • set和get函数:用于控制对象属性的访问和修改。
  • 其他一般函数:为完成特定任务而编写的功能方法。
  • 构造函数:用于创建和初始化对象。
  • 注意事项:类的命名应清晰反映其用途,首字母大写。

  • 三、构造函数

    构造函数(Constructor)是Java中用于创建对象的特殊方法,JVM在对象被创建时会自动调用构造函数进行初始化。以下是构造函数的写法和常见用法:

  • 限制条件:构造函数只能使用public、private等访问权限修饰符,不能使用static关键字。
  • 返回类型:构造函数没有返回值类型,且不能使用void。
  • 函数名:与类名一致。
  • 参数列表:可以定义任意类型和数量的参数。
  • 默认构造函数:没有手动编写的情况下,编译器会自动生成一个无参数的构造函数。
  • 例子:

    public class Student {    private String name; // 私有属性,需要通过get和set方法访问    public Student(String name) { // 自定义构造函数        this.name = name; // 初始化对象属性    }}

    四、对象的内存表示

    在Java中,对象的内存分为堆和栈两个部分:

  • 堆内存:存储对象本身的起始地址和其他对象引用。
  • 栈内存:存储方法调用的上下文,包括方法的返回地址和局部变量。
  • 对象是引用类型,对象引用存储在栈内存中,而对象本身的信息存储在堆内存中。


    五、关键字this

    this关键字在Java中有多种用途:

  • 指代当前类对象:可以在函数中强制指向本类的对象。
  • 区分同名变量和局部变量:避免命名冲突。
  • 调用本类构造函数:必须放在构造函数的第一行。
  • 示例:

    public class Employee {    private String name;    public Employee(String name) {        // 这里使用this表示创建对象的本类引用        this.name = name; // 初始化对象属性    }}

    六、匿名对象

    匿名对象是一种没有名字的对象,只在需要的时候被创建和使用。匿名对象的优点是:

  • 只用一次:适合对某个对象只需要调用一次的场景。
  • 便于实现接口:可以直接传递给需要接口的方法。
  • 例子:

    Course course = new Course("编程基础");// 如果是匿名对象Course 匿名Course = new Course("匿名课程"); // 只能使用一次

    七、继承

    继承(Inheritance)是面向对象特征之一,通过extends关键字实现子类与父类的关系。下面是继承的核心概念和注意事项:

  • 子类和父类的关系:子类从父类继承所有属性和方法,为代码复用性提供了可能性。
  • 继承方式:如class A extends B,表示A继承自B。
  • 封装的重要性:在定义继承前,必须确定父和子类是否存在共同的属性和方法。
  • 注意事项:

    • 灵活性:不能随意改变父类的属性和方法。
    • 灵 ∃ broadcasters:避免继承初阶,只有逻辑上的继承满足A instanceof B

    八、多态

    多态(Polymorphism)是面向对象特征之一,通过方法的动态绑定实现不同对象对同一方法调用的不同行为。多态主要通过接口实现,下面是相关内容:

  • 接口定义:使用interface关键字定义接口,所有方法都是抽象的。
  • 接口实现:使用implements关键字实现接口中的方法。
  • 多继承:接口可以继承其他接口,类似于多继承。
  • 示例:

    interface Animal { // 接口定义    void sound(); // 抽象方法}class Dog implements Animal { // 实现类    @Override    void sound() { // 实现抽象方法        System.out.println("狗叫");    }}// 多态应用Animal animal = new Dog();animal.sound(); // 调用Dog类的实现方法

    总结

    封装和构造方法是Java面向对象的核心概念,它们为开发者提供了更加高效和安全的编程方式。通过封装,代码实现得以保护,通过构造方法,对象的创建和初始化得以便捷化。对于更高级的概念(如继承和多态),理解它们的作用和使用场景是成为擅长Java编程的关键。

    转载地址:http://ixryk.baihongyu.com/

    你可能感兴趣的文章
    java 记事本程序_Java记事本程序Notebook
    查看>>
    java 重载、重写、重构的区别
    查看>>
    Java 链表对象 链表翻转 对象中有对象的翻转 对象链表翻转指针
    查看>>
    Java+MySQL实现学生管理系统
    查看>>
    Java+SQL Serve开发的《java电子商务系统》搭建开源实战+视频教程
    查看>>
    java- File
    查看>>
    JAVA- 清除数组重复元素
    查看>>
    Java---设计模式app小软件汇总应用
    查看>>
    Java-JUC(五):闭锁(CountDownLatch)
    查看>>
    Java-slf4j:sfl4j
    查看>>
    java-信息安全(九)-基于DH,非对称加密,对称加密等理解HTTPS
    查看>>
    java-如何给表格添加分页
    查看>>
    Java-笔记12
    查看>>
    java-设计模式-装饰器设计模式,代理设计模式和继承三种扩展方法的比较
    查看>>
    java.io.IOException: Tried to send an out-of-range integer as a 2-byte value :79944
    查看>>
    java.io.tmpdir
    查看>>
    java.lang.IllegalStateException: Optional int parameter 'id' is not present but cannot be translated
    查看>>
    java农副产品购物app的设计与开发(ssm)
    查看>>
    JAVA分布式系统
    查看>>
    java分布式链路追踪;jvm应用监控-skywalking
    查看>>