Java零基础笔记07(Java编程核心:面向对象编程 {类,static关键字})

1.对象

对象是一种特殊的数据结构, 可以用来记住一个事物的数据, 从而代表该事物

1.1 面向对象的实现步骤

对象本质上是一种特殊的数据结构 ( 可以理解为一张表 )

对象在计算机中的运行过程状态:

万物皆对象, 谁的数据谁存储

2.类的成分

2.1 构造器

构造器是一种特殊的方法, 它的名字要和类名一样

第一: 创建了一个学生对象 第二: 根据对象默认调用无参构造器

示例调用无参构造器:

常见应用场景:

2.2 this关键字

this是一个变量, 可以用在方法中, 来拿到当前的对象 --> 哪个对象调用这个方法, this就拿到哪个对象

应用场景: 解决变量名称冲突的问题

此时输出只接收了传递过来的name的值, 导致都是" 唱歌 "

加上关键字, 前一个name就会去获取当前对象的名称

2.3 封装

类就是一种封装

封装的设计要求: 合理隐藏, 合理暴露

2.4 JavaBean

是实体类, 一种特殊的类, 必须满足以下要求:

实体对象的应用场景 ( 分层思想 ) :

实体类的对象只负责数据存储, 而对数据的业务处理交给其他类的对象来完成, 以实现数据数据业务 处理相分离

2.5 static关键字

static叫静态, 可以修饰成员变量和成员方法

2.5.1 static关键字用法 ( 成员变量的分类 )

成员变量按照有无static修饰,分为两种:

● 静态变量(类变量):有static修饰,属于类,在计算机里只有一份,会被类的全部对象共享。

● 实例变量(对象的变量):无static修饰,属于每个对象独有,只能该对象自己使用。

2.5.2 执行原理

2.5.3 静态变量的应用场景:

如果某个数据只需要一份,且希望能够被共享(访问、修改),则该数据可以定义成静态变量来记住。

java 复制代码
public class User {
    public static int count = 0;

    public User(){
        // User.count++;
        // 注意:同一个类中访问静态成员可以省略类名不写
        count++;
    }
}

2.5.4 static修饰方法 ( 成员方法的分类 )

java 复制代码
public class Test {
    public static void main(String[] args) {
        // 目标:认识static修饰和不修饰方法的区别
        // 1. 类名.静态方法(推荐)
        Student.printHelloWorld();

        // 2. 对象.静态方法(不推荐)
        Student s1 = new Student();
        s1.printHelloWorld();

        // 3. 对象名.实例方法
        s1.setScore(59.5);
        s1.printPass();
    }
}

public class Student {
    private double score;
    // 静态方法:有static修饰,属于类持有。
    public static void printHelloWorld() {
        System.out.println("Hello World");
        System.out.println("Hello World");
        System.out.println("Hello World");
    }

    // 实例方法:没有static修饰,属于对象持有。
    public void printPass() {
        System.out.println(score >= 60 ? "通过" : "您挂科");
    }

    public void setScore(double score) {
        this.score = score;
    }
}

规范:

  • 如果这个方法只是为了做一个功能且不需要直接访问对象的数据,这个方法直接定义成静态方法
  • 如果这个方法是对象的行为,需要访问对象的数据,这个方法必须定义成实例方法
  • 同类中可以不写对象就可以直接调用该类的方法

2.5.5 静态方法常见应用场景

做工具类

构造器私有化, 更加专业, 表示没有创建对象的必要性 ( 源码也是这样写的 )

2.5.6 static的注意事项

静态方法,实例方法访问相关的几点注意事项:

● 静态方法中可以直接访问静态成员,不可以直接访问实例成员。

● 实例方法中既可以直接访问静态成员,也可以直接访问实例成员。

● 实例方法中可以出现this关键字,静态方法中不可以出现this关键字的。

相关推荐
艺杯羹10 分钟前
MyBatis之核心对象与工作流程及SqlSession操作
java·mybatis
LIN-JUN-WEI10 分钟前
[ESP32]VSCODE+ESP-IDF环境搭建及blink例程尝试(win10 win11均配置成功)
c语言·开发语言·ide·vscode·单片机·学习·编辑器
神的孩子都在歌唱18 分钟前
3423. 循环数组中相邻元素的最大差值 — day97
java·数据结构·算法
望获linux1 小时前
【Linux基础知识系列】第四十三篇 - 基础正则表达式与 grep/sed
linux·运维·服务器·开发语言·前端·操作系统·嵌入式软件
喜欢吃豆1 小时前
深入企业内部的MCP知识(三):FastMCP工具转换(Tool Transformation)全解析:从适配到增强的工具进化指南
java·前端·人工智能·大模型·github·mcp
用户1551733938831 小时前
前后端处理 `multipart/form-data` 混合参数(实体对象+文件)方案
java
东阳马生架构1 小时前
订单初版—3.支付和履约链路中的技术问题说明文档
java
HXR_plume1 小时前
【计算机网络】王道考研笔记整理(1)计算机网络体系结构
网络·笔记·计算机网络
笑鸿的学习笔记1 小时前
qt-C++语法笔记之Stretch与Spacer的关系分析
c++·笔记·qt
留不住丨晚霞1 小时前
说说SpringBoot常用的注解?
java·开发语言