Java面向对象——类及类的成员

前言

本讲主要初步了解面向对象,介绍了类的组成部分,并且通过Person类来讲解了类的属性和方法,因为Java是面向对象开发的,所以在项目中会创建很多类和对象,所以这一讲是十分重要的。我们也认识了方法的定义和调用,后续也会写很多方法进行实战。

一、面向对象和面向过程

都是一种开发思想,面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。具体例子通俗来讲就是,比如人把大象装进冰箱。

面向过程的话,主要是关注每一步动作

面向对象的话,主要是关注每一个对象,指挥这个人去做就行,具体怎么做是这个人的事

这样一看,似乎面向过程比较简单,但是面向过程的关心每一个工作的过程和细节,面向对象,我没把程序看成现实中的具体对象,想要做什么直接跟对象说就行,变得更加具体了。

二、Java类和对象

在Java面向对象中,对象指的就是类,面向对象有三大特征(封装、继承、多态),后续我们会一一讲解,对象(类)的组成部分包括:

属 性:对应类中的成员变量

行 为:对应类中的成员方法

1.类的定义

创建一个类的语法如下:

比如一个人的类:

javascript 复制代码
/**
 * 定义人这个类
 * 一个人会有名字,年龄,性别,吃饭,学习,上厕所等等。那么可以划分属性和行为:
 * 属性:名字,年龄,性别
 * 行为:吃饭,学习,上厕所
 * 所以,这样我们就可以完成一个类的编写了
 */
public class Person {
    
    private String name;
    
    private String sex;
    
    private int age;
    
    private void eat (){
        System.out.println("吃米饭");
    }

    private void study (){
        System.out.println("读书");
    }

    private void wc (){
        System.out.println("上厕所");
    }
}

2.对象的创建和使用

创建对象语法: 类名 对象名 = new 类名(); 使用"对象名.对象成员"的方式访问对象成员(包括属性和方法)

比如上面的 Person这个类,我们可以这样创建和调用:

javascript 复制代码
public class MainDemo {
    public static void main(String[] args) {
        // 创建Person类,对象名为person
        Person person = new Person();
        // 设置person对象的相关属性
        person.name = "小明";
        person.sex = "男";
        person.age = 18;
        // 调用person对象对应的行为
        person.eat();
    }
}

三、Java类的属性

1.属性的语法格式

修饰符 数据类型 属性名 = 初始化值

比如:

javascript 复制代码
public String name = "小明"

说明:

  • 修饰符,常用的权限修饰符有:private、缺省、protected、public
  • 数据类型,任何基本数据类型(如int、Boolean) 或 任何引用数据类型。
  • 属性名。属于标识符,符合命名规则和规范即可。

2.属性的修饰符

主要有四种修饰符

一般来说,定义属性都是用私有的,并且姓名年龄是不想给人知道的,得认识我才能知道。

四、Java类的方法

方法是类或对象行为特征的抽象,用来完成某个功能操作,比如Person类的eat、study。在某些语言中也称为函数或过程。Java里的方法不能独立存在,所有的方法必须定义在类里。

1.方法的声明格式

修饰符 返回值类型 方法名(参数类型 形参1, 参数类型 形参2, ....){ 方法体程序代码 return 返回值; }

比如,定义一个人吃饭:

javascript 复制代码
    public void eat (String thing){
        System.out.println("吃" + thing);
    }

如果有返回值的话:

javascript 复制代码
     public String eat (String thing){
        System.out.println("吃" + thing);
        return "吃饱了";
    }

返回值类型说明

  • 没有返回值:void
  • 有返回值,声明出返回值的类型。与方法体中"return 返回值"搭配使用,返回值与返回类型一致

方法的调用:

方法通过方法名被调用,且只有被调用才会执行,上面也是提到过了:"对象名.对象成员"

方法参数说明:

方法参数里面的变量是局部变量,只能在方法内部使用。

2.方法的分类

根据有无返回值,有无方法参数,可以分为四种:

相关推荐
leobertlan7 小时前
2025年终总结
前端·后端·程序员
面向Google编程7 小时前
从零学习Kafka:数据存储
后端·kafka
易安说AI8 小时前
Claude Opus 4.6 凌晨发布,我体验了一整晚,说说真实感受。
后端
易安说AI8 小时前
Ralph Loop 让Claude无止尽干活的牛马...
前端·后端
易安说AI8 小时前
用 Claude Code 远程分析生产日志,追踪 Claude Max 账户被封原因
后端
颜酱9 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
Coder_Boy_12 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
掘金者阿豪13 小时前
关系数据库迁移的“暗礁”:金仓数据库如何规避数据完整性与一致性风险
后端
ServBay13 小时前
一个下午,一台电脑,终结你 90% 的 Symfony 重复劳动
后端·php·symfony
sino爱学习13 小时前
高性能线程池实践:Dubbo EagerThreadPool 设计与应用
java·后端