9.Java基础概念-面向对象

news2025/1/13 14:19:10

欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

Facts speak louder than words!


类和对象

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

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

在Java中必须先设计类才能获取到对象。

类名首字母建议大写,需要见名知意,驼峰模式。

一个Java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。

成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值;一般无需指定初始化值,存在默认值。


封装

封装是为了告诉我们如何正确设计对象的属性和方法。

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

好处:让编程变得简单,有什么事,找对象,掉方法就行。

降低学习成本,可以少学、少记,或者说压根不用学,不用记对象有哪些方法,有需要时去找就行。

针对每一个私有化的成员变量,都要提供get和set方法

set方法:给成员变量赋值

get方法:对外提供成员变量的值

  1. private关键字是一个权限修饰符。
  2. 可以修饰成员(成员变量和成员方法)。
  3. 被private修饰的成员只能在本类中才能访问。
  4. 针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作。
  5. 提供“setXXX(参数)"方法,用于给成员变量赋值,方法用public修饰。
  6. 提供“getXXX()”方法,用于获取成员变量的值,方法用public修饰。

this关键字

this关键字可以区分成员变量和局部变量

 先找局部变量的name,找不到再去成员变量的位置找。

System.out.println(name);

直接去成员变量位置找name

 System.out.println(this.name);


构造方法

也叫构造器或者构造函数

作用:在创建对象的时候给成员变量进行初始化的。

构造方法的定义:

①如果没有写构造方法,虚拟机会自动添加一个空参的构造方法。

②如果已经定义了构造方法,系统不会再提供默认的构造方法。

构造方法的重载:

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

推荐使用的方式:

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

构造方法的格式:

public class Student{

        修饰符 类名(参数){

                方法体;

        }

}

特点:①方法名与类名相同,大小写也要一致

②没有返回值类型,连void都没有

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

例如:

public class Student{

    private String name;
    private int age;

    public Student(){
    //空参构造方法
    }

    public Student(String name,int age){
    //带参构造方法
    }

}


标准的JavaBean类

①类名需要见名知意

②成员变量使用private修饰

③提供至少两个构造方法

        1)无参构造方法;

        2)带全部参数的构造方法;

④成员方法

        1)提供每一个成员变量对应的setXXX()/getXXX()。

        2)如果还有其他行为,也需要写上。


对象内存图

本节主要学习以下内容:

学到后面我发现 挺绕的,也无法做笔记.....


基本数据类型和引用数据类型

前面的博客也有讲到过,这里简单放两张图 。

基本数据类型:数据值是存储在自己的空间中。特点:赋值给其他变量,也是赋的真实的值。

引用数据类型:数据值是存储在其他空间中,自己空间存储的是地址值。


this关键字的内存原理

this主要是用来区分成员变量和局部变量。

this的本质:所在方法调用者的地址值。


觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥The road is long and the line is coming,让我们一起加油吧!🌙🌙🌙

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

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

相关文章

mmyolo训练模型报错:ValueError: Key img_path is not in available keys解决办法

使用mmyolo训练模型 的时候报错:ValueError: Key img_path is not in available keys. Traceback (most recent call last): File “tools/train.py”, line 123, in main() File “tools/train.py”, line 119, in main runner.train() File “/root/anaconda3/en…

基于Ubuntu22.04 安装SSH服务

安全外壳协议(Secure Shell,简称 SSH)是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。 SSH 由 IETF 的网络小组(Network Working Group)所制定,SSH 为建立在应用层基础上的安全协议。SSH…

Linux下进程间的通信--管道

关于进程间的通信 Linux进程间通信(Inter-Process Communication,IPC)是指在多个进程之间传输数据或信号的一些方法。由于Linux中的进程有各自独立的地址空间,因此它们不能直接访问对方的内存。为了实现进程间的通信,…

python探索分形和混沌

简单产生复杂,混沌孕育秩序 0. 引言 a. 分形 fractal 【也叫碎形】 分形是一种具有自相似性和复杂结构的几何图形。在分形结构中,无论放大多少次,局部的结构特征都与整体结构相似。这种特性在自然界中广泛存在,比如树木枝干、山…

目前AI 辅助代码生成是否将成为未来编程的主流?

最强AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/ 我的答案是 肯定的 ! AI辅助代码生成正在迅速崛起,将会成为未来编程的主流趋势。 当然这里的问题是"…

代码随想录算法训练营第二十三天(回溯 二)

力扣题部分: 39. 组合总和 题目链接:. - 力扣(LeetCode) 题面: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以…

Windows系统,查看本机端口被哪个进程占用

1 打开CMD 快捷键 WinR,输入cmd,确定,打开命令行窗口。 2 查看端口的进程PID netstat -aon|findstr "80" 3 根据进程PID查看应用名称 tasklist|findstr "1468" 4 如果想关掉该进程,在任务管理器结束进程既…

「数组」数组双指针算法合集:二路合并|逆向合并|快慢去重|对撞指针 / LeetCode 88|26|11(C++)

目录 概述 1.二路合并 思路 复杂度 Code 2.逆向合并 思路 复杂度 Code 3.快慢去重 思路 复杂度 Code 4.对撞指针 思路 复杂度 Code 总结 概述 数组的线性枚举是我们学习编程时遇到的第一种枚举手段。但是它看起来有点愚蠢:只有一个索引i承担全部…

美食攻略系统---附源码99630

摘要 本论文旨在探讨如何利用SpringBoot技术开发一个美食攻略系统。系统将按照软件开发流程,采用B/S架构和面向对象编程思想进行项目开发。在引言部分,将介绍美食攻略系统的背景和开发目的,后续章节将依据软件开发流程,对系统进行…

电路笔记(PCB):数字信号的带宽与上升沿时间经验公式 BW = \frac{0.35}{T_r}

数字信号的带宽由上升沿决定 1. 传输线路的带宽如果小于信号的带宽就会产生失真 带宽限制和失真:当信号通过带宽受限的传输线路时,如果线路的带宽小于信号的带宽,信号的高频成分将被削弱或完全滤除。这种削弱会导致信号失真,特别…

Luma 1.5正式发布,文生视频加强真实感,时长最长5秒

距离上次版本发布仅过去了两个月,Luma AI再次发布了升级版本Dream Machine 1.5。新版本具有更好的文本到视频转换、更智能地提示理解、自定义文本渲染和改进图像到视频的功能。 得益于Luma AI对所有公众开放,任何人都可以免费试用,平台用户在…

CANoe.DiVa的应用——生成TP层测试用例过程流程详解(二)

🙋‍♂️【Vector CANdelastudio配置CDD】文章合集💁‍♂️点击跳转 ——————————————————————————————————–—— 从0开始学习CANoe使用 从0开始学习车载测试 相信时间的力量 星光不负赶路者,时光不负有心人。 目录 一.概述2.经典CAN T…

基于x86 平台opencv的图像采集和seetaface6的人脸朝向姿态估计功能

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 配置资源文件3.2 验证功能一、概述 本文档是针对x86 平台opencv的图像采集和seetaface6的人脸朝向姿态估计功能,opencv通过摄像头采集视频图像,将采集的视频图像送给seetaface6的人脸朝向姿态…

JavaEE 第15节 JUC相关组件介绍

目录 前言: Callable ReentrantLock Semaphore CountDownLatch 前言: 在Java中,JUC(包路径:java.util.concurrent)是一个用于并发编程的包,提供了线程安全的集合类、同步工具、并发执行框…

OSPF配置学习笔记

1.OSPF基础配置命令 1.1(系统视图)创建并运行OSPF进程 [Huawei] ospf [ process-id | router-id router-id ] porcess-id用于标识OSPF进程,默认进程号为1。OSPF支持多进程,在同一台设备上可以运行多个不同的OSPF进程&#xff0…

[000-01-022].第09节:RabbitMQ中的消息分发策略

我的后端学习大纲 RabbitMQ学习大纲 1.不公平分发: 1.1.什么是不公平分发: 1.在最开始的时候我们学习到 RabbitMQ 分发消息采用的轮训分发,但在某种场景下这种策略并不是很好,比方说有两个消费者在处理任务,其中有个…

【机器学习】联邦学习技术

欢迎来到 破晓的历程的 博客 ⛺️不负时光,不负己✈️ 文章目录 引言联邦学习的定义与原理联邦学习的用例联邦学习示例与代码 引言 在大数据时代,数据隐私和安全成为了一个日益重要的议题。传统的机器学习模型训练通常需要集中大量数据到一个中心服务器…

【自然语言处理】 构建文本对话系统

构建文本对话系统的框架如下: 根据聊天系统目的功用的不同,可分成三大类型: 闲聊式机器人:较有代表性的有微软小冰、微软小娜、苹果的 Siri、小 i 机器人等,主要以娱乐为目的。 **知识问答型机器人:**知识…

Linux别名与用户管理体系

一、别名 1、概述 别名,给命令进行设置 一般用于给命令设置一个昵称/爱称 主要应用场景: 给常用命令设置个快捷方式,使用简单方便给危险命令加上的防护措施 查看系统已有的别名 [rootyunwei ~]# alias alias cpcp -i alias egrepegrep --coloraut…

[alien Invasion]python小游戏阶段总结

以后可能还会进行代码重构,以最终版本为准 本篇文章旨在理清程序脉络,方便以后写类似的程序时提供一个习惯的思路 未经允许,禁止转载 实体区 ship.py import pygame class Ship():def __init__(self,screen,ai_settings):#储存以便后续使…