Java入门基础学习笔记36——面向对象基础

news2025/3/15 19:43:43

面向对象编程快速入门:

计算机是用来处理数据的。

单个变量

数组变量

对象数据

Student类:

package cn.ensource.object;

public class Student {
    String name;
    double chinese_score;
    double math_score;

    public void printTotalScore() {
        System.out.println(name + "的总成绩是: " + (chinese_score + math_score));
    }

    public void printAverageScore() {
        System.out.println(name + "的平均成绩是: " + (chinese_score + math_score) / 2.0);
    }
}

测试类:

package cn.ensource.object;

public class Test {
    public static void main(String[] args) {
        // 目标:面向对象编程快速入门
        // 创建一个学生对象,封装波妞的数据
        Student s1 = new Student();
        s1.name = "播妞";
        s1.chinese_score = 100;
        s1.math_score = 100;

        s1.printTotalScore();
        s1.printAverageScore();

        Student s2 = new Student();
        s2.name = "播仔";
        s2.chinese_score = 59;
        s2.math_score = 59;

        s2.printTotalScore();
        s2.printAverageScore();
    }
}

开发一个一个的对象,把数据交给对象,再调用对象的方法来完成对数据的处理。

深刻认识面向对象:

1)面向对象编程的好处?

世界万物皆对象。

汽车的数据找汽车对象处理。

手机的数据找手机对象处理。

学生的数据找学生对象处理。

符合人类的思维习惯,编程更简单,更直观。

2)程序中的对象到底是个啥?

对象本质上是一种特殊的数据结构。

对象就是一个表。

对象是用类new出来的,有了类就可以创建对象。

类名 对象名 = new 类名();

3)对象是怎么出来的?

class也是类,也称为对象的设计图(或者对象的模板)。

面向对象编程这种套路是咋回事?

祖师爷认为万物皆对象,谁的数据谁处理。

面向对象编程(OOP):

把现实世界中的事物全部看成一个一个的对象来解决问题的。Java的核心思想:万物皆对象。

类(设计图):相同事物的共同特征的描述。

对象:对象是类的具体实例。对象和实例是一回事。

定义类的一些注意事项:

1)类名首字母建议大写、有意义、满足驼峰,不要用关键字,合法的标识符;

2)一个java文件中可以定义多个类,但是只能一个类是public修饰的,而且public修饰的类名必须成为java的文件名,否则报错。

类中具体怎么写呢?

一般名词定义为属性(成员变量)。修饰符、数据类型、变量名称 = 初始值。

private String name;

private double score;

成员变量不建议初始化,存在默认值,默认值的规则:0、0.0、null、false。

一般动词定义成方法(行为):修饰符、返回值、方法名(形参)

创建对象:

类名  对象名 = new 构造器();

对象的使用:

对象名.成员变量

对象名.成员方法

构造器:

构造器的作用:初始化类的对象,并返回对象的地址。

详细格式:

分类:无参数构造器(初始化一个类的对象,里面的数据都是默认值,并返回对象的地址)、无参数构造器(初始化一个类的对象,并返回对象的地址,并且可以同时为对象的成员变量赋值。)

构造器如何调用:

类名 对象名称 = new 构造器();

注意:任何类,自带一个无参数构造器,写不写都有;

如果在类中定义了一个又参数的构造器,那么无参数构造器就消失了,此时,如果还想使用无参数构造器,必须自己写一个。

构造器在IDEA中都是可以自动生成的。

this关键字:代表当前对象的地址。可以访问当前对象的成员对象和成员方法。

this具体用在什么地方?

1)可以用在有参数构造器中的。

2)在方法中,形参和局部变量跟成员变量相同,可以使用this来区别。谁调用方法,this就代表谁。

封装:封装是特点,按这个特点写。

面相对象的三大特征:封装、继承、多态

封装:就是将变量、方法放到一个事物中。决定属性和行为归属谁的问题。

如何更好地封装呢?

合理隐藏、合理暴露。

成员变量建议private私有化、只能本类访问。

合理暴露:提供成套的getter/setter方法,暴露取值和赋值。

代码可以自动生成。

标准JavaBean:

实体类:(学生类、老师类、汽车类、门类、人类)。

作用:创建对象,封装数据的。

标准Bean的书写要求:

成员变量建议private私有化、只能本类访问。

合理暴露:提供成套的getter/setter方法,暴露取值和赋值。

必须提供无参数构造器。

局部变量和成员变量的区别?

这个还是很好理解的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1695125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AUTOMATIC1111/stable-diffusion-webui/stable-diffusion-webui-v1.9.3

配置环境介绍 目前平台集成了 Stable Diffusion WebUI 的官方镜像,该镜像中整合如下资源: GpuMall智算云 | 省钱、好用、弹性。租GPU就上GpuMall,面向AI开发者的GPU云平台 Stable Diffusion WebUI版本:v1.9.3 Python版本:3.10.…

HCIE是什么证书?为什么要考?

每当我发一些关于HCIE的话题时,总有小伙伴过来问“啥是HCIE啊?”今天就一起来了解下,到底什么是HCIE?为什么这么多人都要考HCIE? HCIE是华为认证ICT专家的缩写,它是华为认证体系中最高级别的ICT技术认证。HCIE全称为H…

windows 设置系统字体 (win11 win10)

由于微软的字体是有版权的,所以我打算替换掉 1.下载替换工具 github的项目,看起来很多人对微软默认字体带版权深恶痛绝。 项目地址:nomeiryoUi地址 这里选取最新的版本即可 2.打开软件 这里显示标题栏不能改,确认,其…

使用Systemd 设置Python程序开机启动

在 Linux 系统中设置Python 脚本开机启动,通常可以通过以下几种方式实现: 1. 使用 systemd(推荐方式) systemd 是大多数现代 Linux 发行版使用的初始化系统和服务管理器。你可以为Python 脚本创建一个 systemd 服务文件&#xf…

鸿蒙ArkUI-X平台差异化:【运行态差异化(@ohos.deviceInfo)】

平台差异化 简介 跨平台使用场景是一套ArkTS代码运行在多个终端设备上,如Android、iOS、OpenHarmony(含基于OpenHarmony发行的商业版,如HarmonyOS Next)。当不同平台业务逻辑不同,或使用了不支持跨平台的API&#xf…

Android开发-Android开发中的TCP与UDP通信策略的实现

Android 开发中的 TCP 与 UDP 通信策略的实现 1. 前言2. 准备工作3. Kotlin 中 TCP 通信实现客户端代码示例:服务器代码示例: 4. Kotlin 中 UDP 通信实现客户端代码示例:服务器代码示例: 5. TCP 与 UDP 应用场景分析TCP 实现可靠传…

词条唤夜兽唤夜兽的养殖与护理 幻兽帕鲁 唤夜兽怎么获取 唤夜兽去哪里抓 crossover玩Steam游戏

唤夜兽在地图上没有出现,是唤冬兽和雷冥鸟共同培育出来的帕鲁。 ------------------------- 介绍: 帕洛斯群岛之守护神,拥呼唤黑夜之力。 其会于灾厄席捲大地之际腾空而起,唤来无尽暗夜,试图封印灾厄。 ---------…

Video-FocalNets: Spatio-Temporal Focal Modulation for Video Action Recognition

标题:Video-FocalNets:用于视频动作识别的时空聚焦调制 源文链接:Wasim_Video-FocalNets_Spatio-Temporal_Focal_Modulation_for_Video_Action_Recognition_ICCV_2023_paper.pdf (thecvf.com)https://openaccess.thecvf.com/content/ICCV202…

深入解析文华量化交易策略---交易指令如何选择

随着金融投资的迅猛发展,自动化策略模型已逐渐成为现代投资领域的一股重要力量。量化交易模型均以数据为驱动,通过运用数学模型和算法,对期货、黄金等投资市场走势进行精准预测和高效交易。 艾云策略整理了量化策略相关资料,希望通…

从零开始搭建一个SpringBoot项目

目录 Spring BootSpring Boot 项目开发环境1、快速创建SpringBoot项目2、pom.xml 添加 Meavn 依赖3、配置application.yml4、验证数据库是否连接成功5、配置 Druid 数据源 Spring Boot 整合 MyBatis1、准备依赖2、application-dev.yml 配置3、启动类添加Mapper接口扫描器4、设置…

【Python搞定车载自动化测试】——Python基于Pytest框架实现UDS诊断自动化(含Python源码)

系列文章目录 【Python搞定车载自动化测试】系列文章目录汇总 文章目录 系列文章目录💯💯💯 前言💯💯💯一、环境搭建1.软件环境2.硬件环境 二、目录结构三、源码展示1.诊断基础函数方法2.诊断业务函数方法…

09.自注意力机制

文章目录 输入输出运行如何运行解决关联性attention score额外的Q K V Multi-head self-attentionPositional EncodingTruncated Self-attention影像处理vs CNNvs RNN图上的应用 输入 输出 运行 链接(Attention Is All You Need) 如何运行 解决关联性 a…

Iphone自动化指令每隔固定天数打开闹钟关闭闹钟

1.业务需求:小z每隔五天有一个夜班,然后下午会有三个小时的休息时间,如果闹钟不响就会错过交班日期,但是如果设置闹钟,iPhone的闹钟只能设定固定循环日期闹钟,或者一次的闹钟,导致要么忘记设闹钟…

【网络安全】社会工程学攻击与防范

一、社会工程学概述 1、社会工程学的定义 通过利用人们的心理弱点、本能反应、好奇心、信任、贪婪等一些心理陷阱进行的诸如欺骗、伤害、信息盗取、利益谋取等对社会及人类带来危害的行为或方法。 当网络恶意攻击者无法通过纯粹的计算机技术达到目的时,高超的情商…

【Text2SQL】WikiSQL 数据集与 Seq2SQL 模型

论文:Seq2SQL: Generating Structured Queries from Natural Language using Reinforcement Learning ⭐⭐⭐⭐⭐ ICLR 2018 Dataset: github.com/salesforce/WikiSQL Code:Seq2SQL 模型实现 一、论文速读 本文提出了 Text2SQL 方向的一个经典数据集 —…

Amesim应用篇-电芯等效电路模型标定

前言 为了使计算模型更加准确,在有电芯实验测试数据的情况下,依据现有的实验数据对Amesim中的电池等效电路模型进行标定。标定的目的是为了获得更加符合项目实际情况的电芯等效电路模型,标定完的电芯可以用于搭建PACK模型,也可以用于其他虚拟实验。本文以充电标定为例,进…

ideal 启动 多个 相同 工程

spring相同项目在idea多次运行 点击IDEA右上角项目的隐藏下拉框,出现下拉列表,点击Edit Configurations 弹出Run/Debug Configuration对话框,勾选Allow parallel run

vue实战 ---- 社交媒体---黑马头条项目

vue基础 1.介绍 为什么会有Vuex ? ​ Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 vuex是采用集中式管理组件依赖的共享数据的一个工具,可以解…

21-信号集处理函数

屏蔽信号集 屏蔽某些信号 手动自动 未处理信号集 信号如果被屏蔽,则记录在未处理信号集中 非实时信号(1~31),不排队,只留一个实时信号(34~64),排队,保留全部 信号集…

7. Spring MVC面试题汇总

Java全栈面试题汇总目录-CSDN博客 1. 什么是Spring MVC,简单介绍下你对Spring MVC的理解? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进…