Java项目总结1

1.什么是面向对象(此对象非彼对象)

面向对象的方法主要是把事物给对象化,包括其属性和行为。面向对象编程更贴近实际生活的思想。总体来说面向对象的底层还是面向过程,面向过程抽象成类,然后封装,方便使用就是面向对象。

其本质就是:以类的方式组织代码,以对象的组织(封装)数据。

2.类与对象

1.什么是类


什么是类:类是一种抽象的数据类型,他是对某一类事物的整体描述/定义,但是并不代表某一具体的事物。例如:手机,电脑等等。

2.什么是对象


什么是对象:对象是抽象的具体实例。比如张三是人的一个具体实例,旺财是一个狗的具体实例。

能够体现出特点,展现出功能的具体实例,比如张三的年龄,长相就是其属性,狗的毛色,品种也是其属性,而不是一个抽象的概念。

3.类与对象的关系

1.使用new关键字创建对象,除了分配内存空间以外还会个创建好的对象进行默认初始化以及对类中的构造器进行调用。

2.通常情况下一个类能不能直接使用,需要根据一个类创建一个对象,才能使用,因此我们需要创建一个对象来调用这个类。

创建类的步骤
1)导包:
      格式:import包名称.类名称;
      对于同一个包的情况下,可以省略导包语句
2)创建:
      格式:
      类名称 对象名=new 类名称();
3)使用:
      (1)成员属性:
      格式: 对象名.成员变量名;、
      (2)成员方法:
      格式: 对象名.成员方法名(参数);

4.创建与初始化对象

1.什么是类
定义一个标准类必须有以下部分(直译:有无参数)

(1) 有一个无参构造
(2) 有一个全参构造

(3)方法

大致如下:

//一个项目只存在一个main方法public static void main(String[] args) {/*类:抽象的、需要实例化类实例化后会返回一个自己的对象students对象就是Students的一个具体实例*/Students students= new Students();students.name = "张三";students.age=20;System.out.println(students.name+students.age);}//属性String name;int age;//方法void stu(){//this代表这个类  指向型System.out.println(this.name+"学生在学习");}

此处还涉及到this引用的知识,区分成员变量和局部变量!

2.构造器

构造器包括带参数构造器和无参数构造器,显而易见,指的是有无参数。

解释及实例如下:

public static void main(String[] args) {Students students= new Students("码农");System.out.println(students.name);}String name;//一个类及时什么也不写也会存在一个方法//定义一个构造器//实例化初始值/*使用new关键字,必须使用构造器用来初始化值*///无参构造public Students(){//代表的是上面的namethis.name = "张三";}//有参构造//一旦定义了有参构造,无参构造必须显示定义public Students(String name){this.name = name;}

2.封装

定义(自己理解):该露的露,该藏的藏。将一些较为复杂的内部结构进行隐藏,将一些简单的(比如接口)该暴露给用户的东西暴露出来,比如电视机的外观等等。大部分程序的细节都应该藏起来。我们设计的程序应该追求”高内聚,低耦合“(也就是系统内部的数据操作应该由自己完成,不允许外部进行干预;仅仅暴露少量的方法给外部来进行使用)。

封装的意义:

      1.提高程序的安全性,保护数据。

      2.隐藏代码的关键细节(以s1.setAge(24)来说,用户根本不知道里面干了什么,只有我们程序员才知道);。

      3.统一接口。

      4.提高了系统的可维护性。

详细请看如下:

  public static void main(String[] args) {Students s1 = new Students();/*s1.name;无法进行调用,变量被private被私有了如果换成public公有的关键字才可以被调用*/s1.setName("码农一号");s1.setAge(18);s1.setSex('男');System.out.println(s1.getName());System.out.println(s1.getAge());System.out.println(s1.getSex());}//private关键字为私有化private String name;//名字private int age;//年龄private char sex;//性别/*想要解决主程序中的s1.name被调用的问题就需要提供一些可以操作这个属性的方法解决办法就是提供一些public的get、set方法*///获得这个数据public String getName(){return this.name;}//给这个数据设置值public void  setName(String name){this.name=name;}public int getAge() {return age;}public void setAge(int age) {if (age<100&&age>0) {        //离谱的三岁稚童this.age = age;}else {this.age=3;}}public char getSex() {return sex;}public void setSex(char sex) {this.sex = sex;}

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

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

相关文章

外挂级OCR神器:免费文档解析、表格识别、手写识别、古籍识别、PDF转Word

智能文档解析&#xff1a;大模型友好的文档解析工具 PDF转Markdown 支持将任意格式的文件&#xff08;图片、PDF、Doc&#xff0f;Docx、网页等&#xff09;解析为Markdown或Json格式&#xff0c;以对LLM友好的方式呈现。 更高速度&#xff1a;100页PDF最快1.5s完成解析 更大…

SAR目标检测

Multi-Stage with Filter Augmentation 多阶段滤波器增强(MSFA) 对SAR合成孔径雷达目标检测性能的改善 MSFA ON SAR 传统方法: 预训练:传统方法开始于在通用数据集上预训练一个基础模型。 微调:这个预训练的模型会被微调以适应特定的SAR图像&#xff0c;试图缩小域间的差距 …

selector实现按钮选中高亮效果原理

<?xml version"1.0" encoding"utf-8"?> <selector xmlns:android"http://schemas.android.com/apk/res/android"> <item android:state_pressed"true" android:drawable"drawable/background_press…

【Pytorch实用教程】如何在多个GPU上使用分布式数据并行进行训练模型

文章目录 1. 代码(可直接运行,含随机生成的训练数据)2. 代码的详细解释2.1. 导入必要的库和模块2.2. 设置每个进程的初始设置2.3. 随机生成数据集类 `RandomDataset`2.4. 训练函数 `train`1. 代码(可直接运行,含随机生成的训练数据) 以下是一个基于PyTorch的多GPU分布式…

【JAVA多线程】JDK中的各种锁,看这一篇就够了

目录 1.概论 1.1.实现锁的要素 1.2.阻塞队列 1.3.Lock接口和Sync类 2.各种锁 2.1.互斥锁 2.1.1.概论 2.1.2.源码 1.lock() 2.unlock() 2.2.读写锁 2.3.Condition 2.3.1.概论 2.3.2.底层实现 1.概论 1.1.实现锁的要素 JAVA中的锁都是可重入的锁&#xff0c;因为…

PHP 使用RabbitMq推送消息

use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Message\AMQPMessage;config.php 文件 "order_dispose" > ["routingKey" > "xxx","name" > "xxx",//"class" > \app\rmq\pull\xxx…

苹果再出新招:macOS15 Beta2预览版更新,居然还有iPhone镜像功能

在数字化时代&#xff0c;操作系统的更新迭代是技术进步的显著标志。苹果公司以其一贯的创新精神&#xff0c;不断推动着个人计算体验的边界。 2024年6月25日&#xff0c;苹果公司向Mac电脑用户推出了macOS 15开发者预览版Beta 2更新&#xff0c;这不仅是对macOS系统的一次重大…

logback janinoEventEvaluator expression 实例

参考&#xff1a;logback 日志 mysql logback 日志过滤_mob64ca140d2323的技术博客_51CTO博客 <!-- 控制台日志配置 --><appender name"CONSOLE" class"ch.qos.logback.core.ConsoleAppender"><filter class"ch.qos.logback.core.fil…

RSA加密中可加密数据的长度

在RSA加密算法中&#xff0c;要编码的最大块大小取决于所选择的密钥长度。一般来说&#xff0c;RSA密钥长度可以是1024位、2048位或者4096位。 对于1024位密钥&#xff0c;最大块大小为117字节。这意味着&#xff0c;当使用1024位密钥时&#xff0c;您可以加密的最大数据块为1…

Linux开发:fork进程时避免产生僵尸进程

僵尸进程是指fork后的子进程在完成自己的工作后退出了,但是父进程却没有通过wait/waitpid获取子进程的退出码,这时子进程的资源还不能完全释放,因为需要等待父进程的回收,这时子进程就成为了僵尸进程: #include <iostream> #include <sys/types.h> #include …

【探索Linux】P.36(传输层 —— TCP协议段格式)

阅读导航 引言一、TCP段的基本格式二、控制位详细介绍三、16位接收窗口大小⭕窗口大小的作用⭕窗口大小的限制⭕窗口缩放选项⭕窗口大小的更新⭕窗口大小与拥塞控制 四、紧急指针温馨提示 引言 在上一篇文章中&#xff0c;我们深入探讨了一种无连接的UDP协议&#xff0c;它以其…

14-14 商业领域的人工智能革命

在商业技术领域&#xff0c;对话式人工智能已获得广泛认可和使用&#xff0c;产生了重大而直接的影响。GPT-2 和 GPT-3 等大型语言模型一直是该领域的基础&#xff0c;但它们的高级继任者将对话界面推向了新的高度。这些较新的模型不仅仅是处理输入&#xff1b;它们旨在完美地集…

RK3568驱动指南|第十六篇 SPI-第188章 mcp2515驱动编写:复位函数

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

Python 学习中,什么是字符串,如何处理字符串?

1. 什么是字符串 在Python中&#xff0c;字符串&#xff08;String&#xff09;是一种数据类型&#xff0c;用于表示文本数据。字符串由一系列字符组成&#xff0c;可以包括字母、数字、符号和空格等。字符串在Python中使用单引号&#xff08;&#xff09;或双引号&#xff08…

[数据结构] --- 树

1 树的基本概念 1.1 树的定义 树是n(n>0)个结点的有限集。当 n 0 时&#xff0c;称为空树。在任意一棵树非空树中应满足&#xff1a; (1) 有且仅有一个特定的称为根 (root) 的结点&#xff1b; (2) 当 n > 1 时&#xff0c;其余结点可分为m(m>0)个互不相交的有限集…

GDB 远程调试简介

文章目录 1. 前言2. GDB 远程调试2.1 准备工作2.1.1 准备 客户端 gdb 程序2.1.2 准备 服务端 gdbserver2.1.3 准备 被调试程序 2.2 调试2.2.1 通过网络远程调试2.2.1.1 通过 gdbserver 直接启动程序调试2.2.1.2 通过 gdbserver 挂接到已运行程序调试 2.2.2 通过串口远程调试2.2…

如何快速申请免费SSL证书,实现网站HTTPS安全传输

随着互联网技术的飞速发展&#xff0c;网络安全已成为不可忽视的重要议题。HTTPS协议&#xff0c;作为HTTP协议的安全版本&#xff0c;通过SSL协议加密客户端与服务器之间的数据传输&#xff0c;从而保障信息在传输过程中的安全性。对于网站运营者而言&#xff0c;为网站部署SS…

Stream toArray 好过collect

toArray 比collect 更好用&#xff0c;这样就不需要判断Null。 if(_user.getUserRole()!null) {_user.setRole(_roleList.stream().filter(_e->_e.getRoleId()_user.getUserRole()).toArray(Role[]::new)[0]); } if(_user.getUserRole()!null) {_user.setRole(_roleList.s…

违规停放智能监测摄像机

对于现代城市管理来说&#xff0c;违规停放智能监测摄像机正逐渐成为解决交通拥堵和城市管理难题的重要工具。这类摄像机通过先进的视觉识别和数据分析技术&#xff0c;有效监控和管理道路上的车辆停放行为&#xff0c;对提升城市交通运行效率和改善市民出行环境具有显著的意义…

三代测序PacBioONT reads过滤和修剪-Chooper

chopper简介 chopper是NanoFilt和NanoLyse的Rust语言版本&#xff0c;适用于长reads测序&#xff08;如PacBio和纳米孔测序ONT&#xff09;的过滤和修剪fastq文件。 chopper相对于python编写的NanoFilt和NanoLyse&#xff0c;运行输出相同结果的时间更短&#xff0c;且NanoFi…