JAVA---面向对象(上)

news2025/4/25 16:18:12

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

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

设计对象并使用

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.coloradmin.cn/o/2342548.html

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

相关文章

idea连接远程服务器kafka

一、idea插件安装 首先idea插件市场搜索“kafka”进行插件安装 二、kafka链接配置 1、检查服务器kafka配置 配置链接前需要保证远程服务器的kafka配置里边有配置好服务器IP,以及开放好kafka端口9092(如果有修改 过端口的开放对应端口就好) …

Linux操作系统--基础I/O(上)

目录 1.回顾C文件接口 stdin、stdout、stderr 2.系统文件I/O 3.接口介绍 4.open函数返回值 5.文件描述符fd 5.1 0&1&2 1.回顾C文件接口 hello.c写文件 #include<stdio.h> #include<string.h>int main() {FILE *fp fopen("myfile","…

weibo_har鸿蒙微博分享,单例二次封装,鸿蒙微博,微博登录

weibo_har鸿蒙微博分享&#xff0c;单例二次封装&#xff0c;鸿蒙微博 HarmonyOS 5.0.3 Beta2 SDK&#xff0c;原样包含OpenHarmony SDK Ohos_sdk_public 5.0.3.131 (API Version 15 Beta2) &#x1f3c6;简介 zyl/weibo_har是微博封装使用&#xff0c;支持原生core使用 &a…

【MySQL数据库入门到精通-06 DCL操作】

一、DCL DCL英文全称是Data Control Language(数据控制语言)&#xff0c;用来管理数据库用户、控制数据库的访 问权限。 二、管理用户 1.查询与创建用户 代码如下&#xff08;示例&#xff09;&#xff1a; -- DCL 管理用户 -- 1.查询用户 use mysql; select *from user;-…

无感字符编码原址转换术——系统内存(Mermaid文本图表版/DeepSeek)

安全便捷无依赖&#xff0c;不学就会无感觉。 笔记模板由python脚本于2025-04-24 20:00:05创建&#xff0c;本篇笔记适合正在研究字符串编码制式的coder翻阅。 学习的细节是欢悦的历程 博客的核心价值&#xff1a;在于输出思考与经验&#xff0c;而不仅仅是知识的简单复述。 P…

第七部分:向量数据库和索引策略

什么是矢量数据库&#xff1f; 简单来说&#xff0c;向量数据库是一种专门化的数据库&#xff0c;旨在优化存储和检索以高维向量形式表示的文本。 为什么这些数据库对RAG至关重要&#xff1f;因为向量表示能够在大规模文档库中进行高效的基于相似性的搜索&#xff0c;根据用户…

查看MAC 地址以及简单了解

MAC地址 简介 MAC 地址&#xff08;Media Access Control Address&#xff09;&#xff0c;直译为媒体访问控制地址&#xff0c;又称局域网地址&#xff08;LAN Address&#xff09;、MAC 地址、以太网地址&#xff08;Ethernet Address&#xff09;、硬件地址&#xff08;Ha…

《100天精通Python——基础篇 2025 第2天:Python解释器安装与基础语法入门》

目录 一、Windows安装Python1.1 下载并安装 Python1.2 测试安装是否成功 二、Linux系统安装Python(新手可以跳过)2.1 基于RockyLinux系统安装Python(编译安装)2.2 基于Ubuntu系统安装Python(编译安装)2.3 macOS 安装python解释器 三、如何运行Python程序&#xff1f;3.1 Python…

MyBatis 和 MyBatis-Plus 在 Spring Boot 中的配置、功能对比及 SQL 日志输出的详细说明,重点对比日志输出的配置差异

以下是 MyBatis 和 MyBatis-Plus 在 Spring Boot 中的配置、功能对比及 SQL 日志输出的详细说明&#xff0c;重点对比日志输出的配置差异&#xff1a; 1. MyBatis 和 MyBatis-Plus 核心对比 特性MyBatisMyBatis-Plus定位基础持久层框架MyBatis 的增强版&#xff0c;提供代码生…

动手试一试 Spring Boot默认缓存管理

1.准备数据 使用之前创建的springbootdata的数据库&#xff0c;该数据库有两个表t_article和t_comment&#xff0c;这两个表预先插入几条测试数据。 2.编写数据库表对应的实体类 Entity(name "t_comment") public class Comment {IdGeneratedValue(strategy Gener…

Opencv图像处理:旋转、打包、多图像匹配

文章目录 一、图像的旋转1、使用numpy方法实现旋转1&#xff09;顺时针旋转90度2&#xff09;逆时针旋转90度 2、使用opencv的方法实现图像旋转1&#xff09;顺时针旋转90度2&#xff09;逆时针旋转90度3&#xff09;旋转180度 3、效果 二、多图像匹配1、模板2、匹配对象3、代码…

BOM与DOM(解疑document window关系)

BOM&#xff08;浏览器对象模型&#xff09; 定义与作用 BOM&#xff08;Browser Object Model&#xff09;提供与浏览器窗口交互的接口&#xff0c;用于控制导航、窗口尺寸、历史记录等浏览器行为 window&#xff1a;浏览器窗口的顶层对象&#xff0c;包含全局属性和方法&am…

数据仓库建设全解析!

目录 一、数据仓库建设的重要性 1. 整合企业数据资源 2. 支持企业决策制定 3. 提升企业竞争力 二、数据仓库建设的前期准备 1. 明确业务需求 2. 评估数据源 3. 制定项目计划 三、数据仓库建设的具体流程 1.需求分析​ 2.架构设计​ 3.数据建模​ 4.ETL 开发​ 5.…

时序约束 记录

一、基础知识 1、fpga的约束文件为.fdc&#xff0c;synopsys的约束文件为.sdc。想通过fpga验证soc设计是否正确&#xff0c;可以通过syn工具(synplify)吃.fdc把soc code 转换成netlist。然后vivado P&R工具通过吃上述netlist、XDC 出pin脚约束、fdc时序约束三个约束来完成…

基于SpringBoot的在线抽奖系统测试用例报告

一、项目背景 在线抽奖系统采用前后端分离的方法来实现&#xff0c;同时使用了数据库来存储相关的数据&#xff0c;redis来缓存验证码&#xff0c;RabbitMQ来缓存信息队列&#xff0c;同时将其部署到云服务器上。前端主要有登录页、后台管理页、活动列表页&#xff0c;抽奖页等…

26考研|数学分析:数项级数

数项级数这一章的开始&#xff0c;开启了新的关于“级数”这一新的概念体系的学习进程&#xff0c;此部分共包含四章的内容&#xff0c;分别为数项级数、函数项级数、幂级数以及傅里叶级数。这一章中&#xff0c;首先要掌握级数的相关概念与定义&#xff0c;重难点在于掌握判断…

likeadmin前端请求地址配置踩坑

likeadmin前端本地调试执行步骤 第一步&#xff1a;npm i 安装项目所有依赖 第二步&#xff1a;npm run dev 启动 报错&#xff0c;发送的请求没通&#xff0c;很显然请求的地址不存在 第三步&#xff1a;查找接口请求地址 配置 根目录下有个.env.production.example 文件…

计算机视觉——速度与精度的完美结合的实时目标检测算法RF-DETR详解

概述 目标检测已经取得了长足的发展&#xff0c;尤其是随着基于 Transformer 的模型的兴起。RF-DETR&#xff0c;由 Roboflow 开发&#xff0c;就是这样一种模型&#xff0c;它兼顾了速度和精度。使用 Roboflow 的工具可以让整个过程变得更加轻松。他们的平台涵盖了从上传和标…

系统思考:技术与产品协同

在《第五项修炼》中&#xff0c;彼得圣吉指出&#xff1a;组织中最根本的问题&#xff0c;往往不是个别人的能力&#xff0c;而是思维的局限和系统之间的断裂。我最近要给一家互联网公司交付系统思考的项目&#xff0c;客户希望技术和产品的管理者一起参加&#xff0c;也问我&a…

面试之消息队列

消息队列场景 什么是消息队列&#xff1f; 消息队列是一个使用队列来通信的组件&#xff0c;它的本质就是个转发器&#xff0c;包含发消息、存消息、消费消息。 消息队列怎么选型&#xff1f; 特性ActiveMQRabbitMQRocketMQKafka单机吞吐量万级万级10万级10万级时效性毫秒级…