Java基础 | 类和对象(下)

简介: 类和对象

(三)封装

1. private关键字

  • 是一个权限修饰符
  • 可以修饰成员(成员变量和成员方法)
  • 作用是保护成员不被别的类使用,被private修饰的成员只在本类中才能访问

针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作

  • 提供“get变量名()“方法,用于获取成员变量的值,方法用public修饰
  • 提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰

2.this关键字

(1)this修饰的变量用于指代成员变量
  • 方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量
  • 方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量
(2)什么时候使用this呢?

解决局部变量隐藏成员变量

(3)this:代表所在类的对象引用
  • 方法被哪个对象调用,this就代表哪个对象

3.封装

(1)封装概述

封装、继承、多态是面向对象三大特征

封装是面向对象编程语言对客观世界的模拟,客观世界成员变量都是隐藏在对象内部的,外界是无法直接操作的

(2)封装原则

将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对信息的操作和访问

成员变量private,提供对应的getXxx()/ setXxx()方法

(3)封装的好处

通过方法来控制成员变量的操作,提高了代码的安全性

把代码用方法进行封装,提高了代码的复用性



(四)构造方法

1.概述

构造方法是一种特殊的方法

作用:创建对象

格式:

public class 类名{
    修饰符 类名(参数){
    }
}

功能:主要是完成对象数据的初始化


2.构造方法的注意事项

(1)构造方法的创建
  • 如果没有定义构造方法,系统会默认给出一个无参构造方法
  • 如果定义了构造方法,系统将不再提供默认的构造方法
(2)构造方法的重载
  • 如果自定义了带参构造方法,还要使用无参构造方法,就必须再写一个无参构造方法
(3)推荐使用的方式
  • 无论是否使用,都手工书写无参数构造方法

3.标准类的制作

创建学生类:

public class Student {
    //成员变量
    private String name;
    private int age;

    //构造方法
    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = 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 void show() {
        System.out.println(name + "," + age);
    }
}

创建学生测试类:

public class StudentDemo {
    public static void main(String[] args) {
        // 无参构造方法创建对象后使用setXxx()赋值
        Student s1 = new Student();
        s1.setName("张三");
        s1.setAge(30);
        s1.show();

        //使用带参构造方法直接创建带有属性值的对象
        Student s2 = new Student("王五",22);
        s2.show();
    }
}
目录
相关文章
|
3月前
|
Java 编译器 API
Java 密封类:精细化控制继承关系
Java 密封类:精细化控制继承关系
304 83
|
1月前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
178 101
|
1月前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
228 100
|
2月前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
325 120
|
4月前
|
IDE Java 数据挖掘
Java 基础类从入门到精通实操指南
这份指南专注于**Java 17+**的新特性和基础类库的现代化用法,涵盖开发环境配置、数据类型增强(如文本块)、字符串与集合处理进阶、异常改进(如密封类)、IO操作及实战案例。通过具体代码示例,如CSV数据分析工具,帮助开发者掌握高效编程技巧。同时提供性能优化建议和常用第三方库推荐,适合从入门到精通的Java学习者。资源链接:[点此下载](https://pan.quark.cn/s/14fcf913bae6)。
196 35
|
8天前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
54 4
|
12天前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
104 5
|
16天前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
70 1
|
16天前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
133 1
|
16天前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
95 1