浅谈java面向对象(类,封装,this,构造方法)

浅谈Java面向对象

在Java中,类可看做是一个数据类型,它包含了数据和方法。数据称为类的属性,而方法则是类的行为。

在代码实现中,通过使用关键字“class”来定义一个类,类的命名应遵循驼峰命名法。下面是一个简单的类的定义示例:

public class Person {
    private String name;
    private int age;

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return this.name;
    }

    public int getAge() {
        return this.age;
    }
}

封装

封装是面向对象编程的一种重要特性,它是指将数据和方法进行封装,隐藏数据的具体实现方式,仅对外提供必要的公共接口。

在Java中,可以通过访问修饰符来控制类的数据与方法的访问权限。常用的访问修饰符有public、protected、default和private。

其中,public修饰符表示该成员可以被所有类访问,protected修饰符表示该成员可以被本类、子类和同一个包中的类访问,default修饰符表示该成员可以被本类、同一个包中的类访问,而private修饰符表示该成员只能被本类访问。

在上面定义的Person类中,name和age属性被定义成了private私有修饰符,只有该类内部的方法才能访问这些属性值。而将setter和getter方法定义为public,可以在类外部访问这些属性值。

this

在Java中,this关键字表示当前对象的引用,它指向正在调用该方法的对象。

在构造方法中,this关键字可以用于调用当前类的其它构造方法,以避免重复代码的编写。如下面的例子所示:

public class MyClass {
    private String name;
    private int age;

    public MyClass(String name) {
        this(name, 18);
    }

    public MyClass(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

在上面的代码中,MyClass类有两个构造方法,当调用第一个构造方法时,它会调用第二个构造方法,并将age参数的默认值设为18。

构造方法

在创建一个对象时,构造方法会被调用,用于初始化对象的属性值。在Java中,构造方法的命名必须与类名相同,不能有返回值,可以有参数。

如下面的代码所示,Person类有一个有参数的构造方法,用于初始化name和age属性的值。

public class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

当创建一个Person对象时,可以在括号内传入相应的参数,如下所示:

Person person = new Person("张三", 20);

在该示例中,会调用Person类的有参数的构造方法,将“张三”和20分别赋值给name和age属性。

示例说明

示例1:定义一个Rectangle类,实现长方形的面积和周长计算功能。

public class Rectangle {
    private double width;
    private double height;

    public Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    public double area() {
        return this.width * this.height;
    }

    public double perimeter() {
        return 2 * (this.width + this.height);
    }
}

在上面的代码中,Rectangle类有两个属性width和height,分别表示长方形的宽和高。它有一个有参数的构造方法,用于初始化这两个属性值。它也有两个方法area和perimeter,分别用于计算长方形的面积和周长。

示例2:定义一个Student类,包含姓名、年龄、性别和学号等属性,实现这些属性的getter和setter方法。

public class Student {
    private String name;
    private int age;
    private char gender;
    private String id;

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return this.name;
    }

    public int getAge() {
        return this.age;
    }

    public char getGender() {
        return this.gender;
    }

    public String getId() {
        return this.id;
    }
}

在上面的代码中,Student类有四个属性name、age、gender和id,分别表示学生的姓名、年龄、性别和学号。它有对应的setter和getter方法,用于设置和获取这些属性值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈java面向对象(类,封装,this,构造方法) - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • 一文详解Java中字符串的基本操作

    一文详解Java中字符串的基本操作 字符串定义 在Java中,字符串是一种数据类型,用来表示一系列的字符组合。在Java中,字符串是用双引号(” “)括起来的,可以包含任意数量的字符。 String str1 = "hello world"; 字符串拼接 在Java中,字符串可以通过加号(+)进行拼接。 String str1 = &qu…

    Java 2023年5月26日
    00
  • windows命令行中java和javac、javap使用详解(java编译命令)

    windows命令行中java和javac、javap使用详解(java编译命令) Java Java是一种面向对象的编程语言,可以跨平台使用,即只需编写一次程序代码,便可在不同的操作系统上运行。Java源代码需要通过编译才能运行,编译后的代码被称为字节码,在Java虚拟机上执行。 在Windows命令行中使用Java命令可以运行编译好的Java程序。 Ja…

    Java 2023年5月20日
    00
  • SpringMVC响应处理详细解读

    SpringMVC响应处理详细解读 概述 SpringMVC是一个非常流行的MVC框架,它的出现极大地简化了Java Web应用的开发过程。其中,响应处理是SpringMVC的核心功能之一。本文将详细解读SpringMVC中响应处理的过程。 响应处理的流程 SpringMVC的响应处理过程分为以下几个阶段: Controller方法的返回值处理 视图成功渲染…

    Java 2023年5月16日
    00
  • 解决mybatis-plus 查询耗时慢的问题

    当使用MyBatis-Plus进行查询时,如果存在查询耗时慢的问题,我们可以通过以下方式进行优化: 1. 添加索引优化 在进行查询时,若存在大表或多表关联的情况,可以考虑通过添加索引来优化查询速度。具体可以通过以下方式操作: 1.1. 加速索引扫描 当查询条件中包含索引列时,MySQL会尝试使用索引扫描,但当行数非常大时,索引扫描比全表扫描更慢。此时可以通过…

    Java 2023年6月16日
    00
  • java实现投票程序设计

    Java实现投票程序设计攻略 1. 了解需求 在实现投票程序之前,我们需要明确一下需求。例如: 需要设计投票选项,可以通过界面展示 需要统计投票信息,包括投票人数和每个选项的得票数 需要控制每个人只能投一次票 需要友好的界面和交互逻辑 2. 设计数据结构 针对以上需求,我们可以先设计出如下的数据结构: public class Option { privat…

    Java 2023年5月19日
    00
  • Spring MVC处理方法返回值过程解析

    下面我来详细讲解一下“Spring MVC处理方法返回值过程解析”的完整攻略。 什么是Spring MVC处理方法返回值过程? Spring MVC是基于MVC结构的开发框架,其中的控制器(Controller)负责处理用户请求并返回响应结果。在Spring MVC的控制器中,方法的返回值封装成一个ModelAndView对象,其中包含了视图名、数据模型和状…

    Java 2023年5月16日
    00
  • Sprint Boot @PutMapping使用方法详解

    @PutMapping是Spring Boot中的一个注解,它用于将HTTP PUT请求映射到控制器方法上。在使用Spring Boot开发Web应用程序时,@PutMapping是非常重要的。本文将详细介绍@PutMapping的作用和使用方法,并提供两个示例说明。 @PutMapping的作用 @PutMapping的作用是将HTTP PUT请求映射到控…

    Java 2023年5月5日
    00
  • java实现银行家算法(Swing界面)

    Java实现银行家算法(Swing界面)攻略 银行家算法(Banker’s Algorithm)是一种经典的死锁预防算法,常用于操作系统中。在多进程环境下,进程需要占用资源,但是资源并不足够,如果资源分配策略不合理,则可能会出现死锁的情况。银行家算法通过资源的最大需求量和已分配需求量来判断分配资源是否会导致死锁的发生,从而保障系统运行的安全性。 本文基于Ja…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部