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

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

面向对象编程快速入门:

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

单个变量

数组变量

对象数据

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方法,暴露取值和赋值。

必须提供无参数构造器。

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

这个还是很好理解的。

相关文章:

  • 思科模拟器--03.RIP协议路由--24.5.17
  • FOC之反park变化推导笔记
  • mysql 多表关联查询性能优化-同一sql不同的执行计划
  • 最近最少使用缓存
  • dify:开源 LLMOps平台。
  • Android Retrofit 封装模版
  • 物体检测算法-R-CNN,SSD,YOLO
  • 苍穹外卖①
  • Unity数据持久化2——XML
  • JavaScript 中的变量声明方式及其应用场景
  • MySQL学习之DQL语句(数据查询语言)
  • MySQL——表的约束
  • 使用Flask ORM进行数据库操作的技术指南
  • 卷积神经网络(CNN)详细介绍及其原理详解
  • 力扣279. 完全平方数
  • AHK 中 = 和 == 等比较运算符的用法
  • golang 发送GET和POST示例
  • HTTP请求重发
  • Laravel 实践之路: 数据库迁移与数据填充
  • Linux gpio口使用方法
  • Protobuf3语言指南
  • Spring Boot快速入门(一):Hello Spring Boot
  • Webpack入门之遇到的那些坑,系列示例Demo
  • WebSocket使用
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 收藏好这篇,别再只说“数据劫持”了
  • 为什么要用IPython/Jupyter?
  • 系统认识JavaScript正则表达式
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​iOS实时查看App运行日志
  • ​LeetCode解法汇总518. 零钱兑换 II
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • #预处理和函数的对比以及条件编译
  • (23)Linux的软硬连接
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (c语言)strcpy函数用法
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (离散数学)逻辑连接词
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET 药厂业务系统 CPU爆高分析
  • .NET命令行(CLI)常用命令
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • @Not - Empty-Null-Blank
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @在php中起什么作用?
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [BT]BUUCTF刷题第4天(3.22)
  • [BZOJ 3282] Tree 【LCT】
  • [C# 基础知识系列]专题十六:Linq介绍
  • [C#]C# winform实现imagecaption图像生成描述图文描述生成