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

JAVA---面向对象(上)

今天写重生之我开始补知识  第二集

面向对象编程:拿东西过来做对应的事。

设计对象并使用

1.类和对象

类(设计图):是对象共同特征的描述;

对象:是具体存在的具体东西;

如何定义类:

public class 类名{成员变量(属性)成员方法(行为)构造器代码块内部类}
类名 对项名 = new 类名();

在JAVA中,必须先设计类,才能获得对象!!!

2.类的注意事项

1) javabean 类:用来描述一类事物的类 (在 javabean 中,是不写 main 方法的)

2)在以前,编写 main 方法的类,叫做测试类

      我们可以在测试类中创建 javabean 类的对象进行赋值调用。


类名首字母建议大写,驼峰命名

一个JAVA文件中可以写多个 class 类,且只能一个类是 public 修饰,而且 public 修饰的类名必须成为代码的文件名;实际还是建议一个文件定义一个class类。

成员变量的完整定义格式:修饰符 数据类型 变量名称 = 初始化值;

(一般无需指定初始化值,存在默认值)

封装

首先,咱讲讲面向对象的三大特征:封装;继承;多态。

封装教我们如何正确设计对象的属性和方法。

对象代表什么,就得封装对应的数据,并提供数据对应的行为;

public class Circle{double radius;public void draw(){System.out.println(“根据半径”+radius+“画一个圆”); }
}

封装的好处:

1.对象代表什么,就得封装对应的数据,并提供数据对应的行为;

2.降低学习成本,可以少学,少记;

3.使编程难度降低

private关键字

1. 是一个权限修饰符

2. 可以修饰成员(成员变量和成员方法)

3. 被 private 修饰的成员只能在本类中才能访问

成员变量和局部变量

成员变量:  成员变量是定义在类中,却不在类里的方法、构造函数或者代码块里的变量

  • 作用域:在整个类内都有效,类里的所有方法、构造函数和代码块都能够访问它。
  • 生命周期:若是静态成员变量,它会随着类的加载而创建,随着类的卸载而销毁;要是实例成员变量,会在对象创建时创建,对象被销毁时销毁。
  • 初始化:如果没有显式初始化,会有默认值。像数值类型默认值是 0,布尔类型默认值是 false,引用类型默认值是 null。

局部变量:局部变量是定义在方法、构造函数或者代码块内的变量

  • 作用域:仅在定义它的方法、构造函数或者代码块内有效。
  • 生命周期:从定义它的地方开始,到所在的代码块结束时销毁。
  • 初始化:在使用前必须显式初始化,不然会编译错误。

就近原则和this关键字

就是谁离我近,我就用谁

System.out.println(age);System.out.println(this.age);

this 的作用:区分成员变量和局部变量

面向对象的构造方法

构造方法:也叫做构造器、构造函数;

分为无参数构造方法和有参数构造方法;

作用:在创建对象的时候给成员变量进行赋值;

public class Student{修饰符 类名(参数){方法体;}}

特点:

1.方法名与类名相同,大小写也要一致;

2.没有返回值类型,连void也没有;

3.没有具体的返回值(不能由 return 待会结果数据)

构造方法注意事项:

创建对象的时候,由虚拟机自动调用,给成员变量进行初始化的。

1.构造方法的定义

1) 如果没有定义构造方法,系统会给出一个默认的无参数的构造方法;

2) 如果定义了构造方法,系统就不会再提供默认的构造方法了。

2.构造方法的重载

1)带参构造方法,和无参数构造方法,二者方法名相同,但是参数不同,这叫做构造方法的重载

3.推荐的使用方式

无论是否使用,都手写无参数构造方法和带全部参数的构造方法。

面向对象我将分为上下两篇博客。

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

相关文章:

  • 5.3.1 MvvmLight以及CommunityToolkit.Mvvm介绍
  • Redis安装及入门应用
  • 第53.5讲 | 小项目实战:用 SHAP 值解释农作物产量预测模型 [特殊字符][特殊字符]
  • SpringBoot整合AOP
  • Tomcat:从零理解Java Web应用的“心脏”
  • 健康养生小窍门
  • 微高压氧舱VS高压氧舱:氧气疗法的“双生花”如何重塑健康?
  • 【前端】基于 Promise 的 HTTP 客户端工具Axios 详解
  • MVCC详解
  • 【前端】【业务场景】【面试】在前端开发中,如何实现文件的上传与下载功能,并且处理可能出现的错误情况?
  • 机械手排列定位设备 PLC梯形图流程
  • 乐聚机器人与地瓜机器人达成战略合作,联合发布Aelos Embodied具身智能
  • UE5 Assimp 自用
  • ragflow部署以及api调用整理
  • java—13 RocketMQ
  • 拥抱健康生活,解锁养生之道
  • 某城乡老旧房屋试点自动化监测服务项目
  • 关于边缘计算盒子的外部接口保护
  • Python 的 datetime 模块使用详解
  • Redisson实战:分布式系统中的五大典型应用场景
  • 来访登记二维码生成
  • 数据一致性问题剖析与实践(二)——单机事务的一致性问题
  • MySQL的日志--Redo Log【学习笔记】
  • OpenCV 图形API(60)颜色空间转换-----将图像从 YUV 色彩空间转换为 RGB 色彩空间函数YUV2RGB()
  • PyQt6实例_A股财报数据维护工具_使用
  • 【TeamFlow】4.3.4 长度单位
  • 【大数据技术-联邦集群RBF】DFSRouter日志一直打印修改Membership为EXPIRED状态的日志分析
  • UniGoal 具身导航 | 通用零样本目标导航 CVPR 2025
  • Sql文件处理SQLDumpSplitter
  • mojoPortal 接口imagehandler任意文件读取漏洞(CVE-2025-28367)