当前位置: 首页 > backend >正文

暑假复习篇之类与对象

面向对象:①类与对象②封装③继承④接口

类与对象:

  • 概念:类就是类别的意思  用class表示 /  面向对象编程,万物皆可编程,在程序中表示一个事物时,往往因为事物的复杂程度导致编程的代码非常复杂 【基本数据类型,只能实现一个变量用来表示一个数据的情况,当下面这种有多个数据组成的一份数据,使用一个基本数据类型表示时就比较复杂】

比如:一个人、一个用户、一个学生

人:姓名 年龄 性别 体重 身高 等

用户:账号ID 密码 几分 电话 地址 邮箱等

学生:姓名 年龄 班级 学分 学号等

        ①复合型数据类型创建的变量——叫做对象变量,对象变量中包含了,按照类模版生成的多个基本数据/其他数据

  • 什么是对象  对象就是具体的事物、具体存在的。  程序中 对象指代一个事物在计算机中映射的数据体 存在于内存中
  • 类与对象的关系 

①类就是一个概念性的东西,是一个模版 用于创建对象变量的模版

②对象是一个具体的东西 是代码执行之后  在内存中存在的一份数据体

类与对象的语法:

  • 类的定义: 语法: public class 类名{  }
  • 命名要求:推荐【阿里巴巴Java开发手册】

        ①类名/类文件名:首字母大写,多个单词拼接,每个单词首字母大写 -> 驼峰命名法

        ②方法名/变量名:首字母小写,多个单词拼接,每个首字母大写 -> 小驼峰命名法

        ③偶尔使用的局部变量:循环中计数等等可以使用字母    或者小写或者缩写 

        ④不要使用拼音,使用单词。

  • 一个类中需要定义什么内容,能变成一个可以符合面向对象编程的复合型数据类型
  • 类就是复合型数据类型,如何规划一个类别?

        类别的来源——共性

        通过分析事物之间是否具有相同的/相似的  属性 特征 行为 功能…… 来划分类别

        所以我们定义类时,也需要找到 这个类别对应事物都有哪些数据 特征 行为 功能等

        然后使用代码将这些内容定义到类中,实现复合型数据类型的组成

  • 学生管理系统

  • 创建对象的格式: 类型 对象变量名 = new  类名();

        ①学生可以注册信息

        ②可以查看自己的信息

        ③可以修改自己的信息

        ④可以选课

        ⑤可以在线学习

        ⑥可以在线考试

  1. 首先需要知道系统重应该保存每个学生的哪些信息,需要哪些信息来完成所有 功能                信息: 姓名 学号 学分 年龄 班级 专业 密码 课程表                                                                  功能:登录 查信息 修改信息 选课 学习 考试
  2. 所有一个类的内容包含                                                                                                             

        ①属性:用来表示这个类别对应的事物应该有什么数据信息 通常在代码使用变量来定义

                格式:属性的数据类型  属性数据变量名;

                String name;  int age;

        ②方法:用来表示这个类别具备的行为/功能,一对象为主语的行为,通常使用方法(函数,一段代码的结构)来表示

                格式:public 返回值类型 方法名(参数){  方法体  }

                - 返回值:方法结构的一部分,具备一定的功能性 用于帮助程序更好的完成一些逻辑

                        - 用于实现在调用方法之后,获得这个方法得到的结果。

                        - 定义方法时就需要考虑如何设计返回值。思考这个方法需要返回的结果是什么类型,从而定义方法设定返回值类型。

                        - 如果这个方法不需要返回值,返回值类型可以设定为void

                        - 一单设定了具体的返回值类型,在方法任何有可能结束运行的位置 都需要使用return返回响应返回值类型的结果

                        - 在调用方法的位置,可以在方法前面可以创建一个队形返回值类型的变量,来接收方法先执行完成返回的结果

  • Math 工具类 这个类中所有的方法比较特殊,是静态方法,可以使用类名调用    Math.min是两数比较得最小值   Math.max是两数比较得最大值

                - 参数:方法结构的一部分,相当于方法的局部变量

                        - 在定义方法时,在不知道一些具体的数据时,可以使用参数变量来替代,为了完成代码的逻辑编写

                        - 在调用方法时,需要根据定义的参数类型,向方法的括号写上对应的变数据/或者带有数据的变量

                - 格式:

                ①无参数:空着不写,调用方法时,方法名后面括号也空着

                ②有参数:

                        单个参数:(数据类型 数据变量名)在调用时给的参数数据只要符合参数类型就可以

                        多个参数:(参数数据类型 参数变量名2,数据类型 参数名1)每个参数名必须不一致,传入参数时要注意顺序


public class Student {//属性String name;String stuID;String className;int age;int score;public void showInfo(){System.out.println("--学生个人基础信息--");System.out.println("姓名" + name);System.out.println("学号" + stuID);System.out.println("年龄" + age);System.out.println("班级" + className);System.out.println("成绩" + score);}public void study(){score+=5;System.out.println(name + "学习了一门课程,学分增加5分。");}public void play(){System.out.println(name + "正在玩");}//测试//使用类创建对象变量 并使用对象变量名调用属性和方法public static void main(String[] args) {Student s1 = new Student();s1.name = "张三";s1.stuID = "001";s1.age = 18;s1.className = "1班";s1.score = 90;s1.showInfo();s1.study();s1.showInfo();s1.play();}
}

http://www.xdnf.cn/news/14757.html

相关文章:

  • gantt-task-react的改造使用
  • 源码运行效果图(六)
  • cocos creator 3.8 - 精品源码 - 六边形消消乐(六边形叠叠乐、六边形堆叠战士)
  • 《自动控制原理 》- 第 1 章 自动控制的基本原理与方式
  • 计算机操作系统(十七)内存管理
  • OpenCV图像噪点消除五大滤波方法
  • 能否仅用两台服务器实现集群的高可用性??
  • 创建套接字时和填充地址时指定类型的异同
  • 【LeetCode 热题 100】438. 找到字符串中所有字母异位词——(解法三)不定长滑动窗口+数组
  • 使用docker编译onlyoffice server 8.2.2 成功版 含踩坑记录
  • C++ STL深度剖析:Stack、queue、deque容器适配器核心接口
  • FDA IND审评流程及临床研究暂停要点
  • Ubuntu20.04离线安装Realtek b852无线网卡驱动
  • Java基础(Maven配置)
  • Vue工程化实现约定式路由自动注册
  • 汇总表支持表头分组,查询组件查询框可以调整高度,DataEase开源BI工具v2.10.11 LTS版本发布
  • Linux基本指令篇 —— tac指令
  • 基于JavaWeb的校园失物招领系统设计与实现
  • C++11 <chrono> 库特性:从入门到精通
  • 在shell中直接调用使用R
  • Spring Boot整合Redis指南
  • 强化学习理论基础:从Q-learning到PPO的算法演进(2)
  • RabbitMQ RPC模式Python示例
  • go写前端打包的自动化工具
  • oracle内存参数调整
  • 【Redis】解码Redis中的list类型,基本命令,内部编码方式以及适用的场景
  • 流程管理系统技术选型避坑指南(含开源)
  • 优化 ArcPy 脚本性能
  • Jmeter并发测试和持续性压测
  • AI+实时计算如何赋能金融系统?DolphinDB 在国泰君安期货年度中期策略会的演讲