入门Java编程的知识点—>面向对象(day07)

news2024/9/22 7:39:22
  • 重点掌握什么是面向对象?
  • 重点掌握面向对象封装的意义?
  • 重点掌握类的封装,创建对象,访问对象?

面向对象

OO:(Object Oriented)面向对象

面向对象是一种编程思想,遵循面向对象设计原则可以写出高质量代码,

高质量代码:代码复用性要好,扩展性要好 ,维护性要好,可读性要好,健壮性要好,效率要好,移植性好。

对象和类

类:抽象不具体的,通常表示一类事物的统称. 在程序中表示模板。

对象:具体的,真是存在的. 在程序中表示在内存中的对象。

软件中对象是指具体类别的个体,类别是根据对象归纳出来的模型。程序中类模板的目的就是为了重复创建更多的对象。

上述角色中,都属于游戏中具体的角色对象,每个角色对象都有哪些数据呢?

角色1:String name = "雷电将军"; char Gender = '女'; int Level=90; String weapon ="稻光" ;int weaponLevel =90;

角色2:String name = "霄宫"; char Gender = '女'; int Level=90; String weapon ="弦振" ;int weaponLevel =90;

角色3:String name = "宫心海"; char Gender = '女'; int Level=90; String weapon ="*月华" ;int weaponLevel =90;

角色4:String name , char Gender , int Level ,String weapon , int weaponLevel

角色5:String name , char Gender , int Level ,String weapon , int weaponLevel

....

角色100:....

会发现存在大量冗余重复的数据,我们可以通过类来解决

面向对象的三大特征:封装,继承,多态
封装

封装的意义:当需要产生多个对象时,可以通过类模板,批量产生对象。

  1. 如何创建类模板
  • 类中放当前类的所有对象共有的数据/属性 --------------- 变量
  • 类中放当前类的所有对象共有的行为/方法 --------------- 方法
class Person{ //人类
 
    //共有的数据
    String name;	
    char gender;	
    int age;
    
    //共有的行为
    void sleep(){ }	
    void eat(){ }
    void play(){   }    
    
}
------------------------
class Car{ //车类
    //共有的数据
    String color;//颜色
    double price;//价格
    String type;//型号
    
    //共有的行为
    void run(){ } 运动
    void back(){ } 后退
    void stop(){ } 刹车
    
}
------------------------
    /**
 * 学生类模板:
 * 所有学生对象共有的数据,共有的行为。
 * 注意:模板类不需要运行,所以不需要构建main功能!
 */
public class Student {
    //共有的属性(数据)      全局变量:在类的里面声明的变量,作用范围在整个类中
    String name;//姓名
    int age;//年龄
    int stuID;//学号

    //共有的行为
    void study() {       //局部变量:在方法结构中声明的变量,作用范围只在当前方法中
        int a = 0;
        System.out.println(name + "在学习");
    }

    void sayHi() {
        int a = 1;
        System.out.println("大家好我叫:" + name + "我的年龄是:" + age + "我的学号是:" + stuID);
    }

变量分类

全局变量(成员变量):在类的里面声明的变量,作用范围在整个类中.

局部变量:在方法结构中声明的变量,作用范围只在当前方法中.

自己创建的类,属于自定义类型.是引用类型

2.如何创建类对象

类型   变量 = 创建Scanner对象
Scanner s  = new Scanner();//创建一个扫描器对象


Student zs = new Student();//创建一个学生对象 并将对象存储给zs这个变量
Student ls = new Student();//创建一个学生对象 并将对象存储给ls这个变量
Student ww = new Student();//创建一个学生对象 并将对象存储给ww这个变量

3.如何访问类对象

package oo.day01;

/**
 * 学生类的测试类:
 */
public class StudentDemo {

    public static void main(String[] args) {
        Student zs = new Student();//创建一个学生对象 并将对象存储给zs这个变量
        //1.创建对象时,对象有什么内容由模板来决定.
        //2.zs这个变量能打点调用出什么,由模板来决定.
        zs.name = "张三";
        zs.age = 18;
        zs.stuID = 1001;
        zs.study();
        zs.sayHi();

        Student ls = new Student();
        ls.name = "李四";
        ls.age = 26;
        ls.stuID = 1002;
        ls.study();
        ls.sayHi();
    }

}

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

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

相关文章

nacos配置发布和服务订阅

nacos安装这里就不说了,官网看即可,以下为单机nacos (一)nacos客户端 (1) 配置管理配置列表 点击编辑页面如下: 点击详情页面如下: (2) 服务管理服务列…

Excel十进制度转为度分秒格式

最近写报告经常需要整理坐标表。 不同的情况往往需要不同的手段来实现。 其中一种情况是,ArcMap以单位度计算坐标字段,然后利用‘表转Excel’工具导出为xls表格。 通过这种方式导出的经纬度坐标是十进制度,比如37.702398675533。 而我需要…

汽车租赁|基于SprinBoot+vue的汽车租赁系统(源码+数据库+文档)

汽车租赁系统 目录 基于SprinBootvue的汽车租赁系统 一、前言 二、系统设计 三、系统功能设计 5.1系统功能模块 5.2管理员功能模块 5.3业务员功能模块 5.4用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&…

探索Git:分布式版本控制系统的力量(二)

😀前言 本篇博文是关于分布式版本控制系统Git的一些基本介绍,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我…

Wemos D1 Mini pro/ nodeMcu / ESP8266 驱动 240*320 ILI9341 SPI液晶屏

Wemos D1 Mini / nodeMcu / ESP8266 驱动 240*320 ILI9341 SPI液晶屏 效果展示器件硬件连接引脚连接原理图引脚对照表 安装TFT_eSPI库TFT_eSPI库中User_Setup.h文件的参数修改User_Setup.h文件的位置User_Setup.h文件中需要修改的参数User_Setup.h完成源码 例程 缘起&#xff1…

Python酷库之旅-第三方库Pandas(100)

目录 一、用法精讲 431、pandas.DataFrame.items方法 431-1、语法 431-2、参数 431-3、功能 431-4、返回值 431-5、说明 431-6、用法 431-6-1、数据准备 431-6-2、代码示例 431-6-3、结果输出 432、pandas.DataFrame.keys方法 432-1、语法 432-2、参数 432-3、功…

【BES2500x系列 -- RTX5操作系统】Battery模块 -- 邮箱线程诞生的第一视角 -- osThreadDef --(十三)

💌 所属专栏:【BES2500x系列】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &#x1f49…

如何用短链接提高内容传播效率?C1N短网址的秘密!

咱都知道,在互联网时代,链接已经成为我们分享内容的标配。但有时候那些长得离谱又复杂的链接,实在是让人头疼。不仅容易出错,还大大降低了内容传播的效率。于是,短链接应运而生,成为现代数字营销中不可或缺…

免费分享一套Java协同过滤推荐算法的SpringBoot+Vue(图书)商城系统【论文+源码+SQL脚本】,帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的Java协同过滤推荐算法的SpringBootVue(图书)商城系统,分享下哈。 项目视频演示 【免费】Java协同过滤推荐算法的SpringBootVue(图书)商城系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 伴随着…

【精选】数码论坛系统设计与实现(计算机毕业设计福利,计算机毕业设计参考,JAVA毕业设计)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

环境搭建 | Windows中MinGW-w64及GCC的下载、安装与配置

本文将介绍 GNU、GCC、MinGW 等相关概念,并着重介绍 Windows 中 MinGW-w64 的下载、安装与配置。MinGW-w64 的安装方式有两种:安装程序安装、压缩包安装,压缩包既可在 SourceForge 上下载,也可在 GitHub 上下载。 前导概念 GNU …

模型 ORID思维

系列文章 分享 模型,了解更多👉 模型_思维模型目录。"结构化思维,深入探讨,明智决策。 1 ORID思维的应用 1.1 提升员工绩效的ORID模型应用 某企业为了提高员工的工作效率和满意度,采用ORID模型进行绩效面谈&…

【Kubernetes】Containerd-得到好物

目录 一、前言二、好物分享1. nerdctl2. buildkit3. k3s4. k9s5. 镜像加速器 三、物料包下载四、总结 一、前言 小伙伴们好久不见鸭,今天小涛分享一些 Containerd容器运维 非常Amazing的工具,老铁们看看操练起来~ 附:最新可用容器镜像加速链…

150mw绿光激光模组主要用途

在现代科技高速发展的今天,激光技术作为一种高精度、高稳定性的技术手段,已经在众多领域展现出了其独特的优势。其中,150mw绿光激光模组作为激光技术的重要分支,以其卓越的性能和广泛的应用前景,备受瞩目。接下来给大家…

MES系统不良品溯源管理:提升产品质量的利器

一、MES系统与不良品溯源管理 MES系统是一种实现车间生产智能化、信息化的管理系统,通过对生产现场的数据采集、处理和分析,为企业提供实时、准确的生产信息。不良品溯源管理是指在生产过程中,对不良品产生的原因进行追踪和分析,…

一文了解内网穿透以及内网穿透工具 Sunny-Ngrok 的使用指南

文章目录 概述简介内网穿透的原理内网穿透的方法内网穿透的应用场景内网穿透的安全考量 Sunny-Ngrok 内网穿透工具简介使用步骤 主要参考 概述 简介 在现代网络架构中,内网穿透(也称为 NAT 穿透或端口转发)是一项至关重要的技术&#xff0c…

Python | Leetcode Python题解之第375题猜数字大小II

题目: 题解: class Solution:def getMoneyAmount(self, n: int) -> int:f [[0] * (n 1) for _ in range(n 1)]for i in range(n - 1, 0, -1):for j in range(i 1, n 1):f[i][j] j f[i][j - 1]for k in range (i, j):f[i][j] min(f[i][j], k …

探索 AI Agents:从理念到 Python 实际运用

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 本文主要介绍了如何利用人工智能代理(AI Agents)从概念到Python中的实际应用,以及如何构建一个内容创作工作流程,通过多个代理协作完成从视频分析到博客撰写的复杂任务,完成后也许这会改变你对人…

【STM32】驱动OLED屏

其实我没买OLED屏哈哈哈,这个只是学习了,没机会实践。 大部分图片来源:正点原子HAL库课程 专栏目录:记录自己的嵌入式学习之路-CSDN博客 目录 1 显示原理 2 读写方式:8080并口 2.1 支持的指令类型 2.2 …

SAP AUTOMAIL-自动发邮件功能

总结 针对发送邮件内容封装公用函数,针对不同业务场景即可实现AUTO MAIL自动触发邮件。 1. 邮件发送内容:正文,附件,超链接等等 1.1 正文可以是一般内容或表格明细清单,涉及到很多格式的设置,用HTML格式…