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

javaSE系列之类与对象

javaSE系列之类与方法

  • 什么是类
  • 类的定义
    • 书写事项
  • 什么是实例化
  • this引用
    • this的注意事项
  • 对象的初始化
    • 构造方法
  • 封装的概念
    • 访问限定符
  • 封装扩展之包
  • static成员
    • static的特性
    • static的初始化
  • 代码块
    • 注意事项
  • 内部类
    • 1.实例内部类

💗 💗 博客:小怡同学
💗 💗 个人简介:编程小萌新
💗 💗 如果博客对大家有用的话,请点赞关注再收藏 🌞

什么是类

对事物简单的描述,该过程对对象(实体)进行抽象(对一个复杂事物的重新认知),类是用来对一个实体(对象)来进行描述的。 列如洗衣机作为一个类
其中成员变量就可用 :产品品牌,型号,产品重量…来描述
成员方法就可用:洗衣,烘干,定时…

加粗样式//在同一个类(父类与子类算同一类)中可以直接访问 不需要引用

类的定义

class 类名()
{
访问权限 数据类型 成员变量;
访问权限 返回值 成员方法(形参);
}

public class Student{public String name ;public int age;public int grade;public void study(){System.out.println("学习");}
}//类名采用大驼峰模式

书写事项

一个文件最好定义一个类
和文件名相同的类必须用public修饰
main()方法所在的类一般使用public修饰

什么是实例化

1.用类类型创建对象的过程,称为类的实例化。 采用new类名,配合类名来实例化
2.使用.来访问对象的属性与方法
3.一个类可以多次实例化

Student student = new Student ();//实例化
//public  class Student {
// public String name ;
// public int age;
// public int grade;
// public void study(){// System.out.println("学习");//  }
//}

this引用

this可以当成当前对象的引用

在这里插入图片描述

//当形参名与成员变量相同时
public  class Student {public String name ;public int age;public int grade;public Student(int age){this.age = age;}public void setName(String name){this.name = name;}
}

this的注意事项

this只能在成员方法中使用
在成员方法中,this只能引用当前对象,不能引用其它方法//我的理解是 new ? ()这个就是当前对象

对象的初始化

当局部变量没有初始化时默认为初始值为0 ,引用类型为null
初始化一般有三种方法
1.通过成员方法
2.构造方法
3.通过引用.成员来初始化
4.就地初始化
5.通过实例代码块初始化

1.通过成员方法
在这里插入图片描述
2.通过引用.成员来初始化
在这里插入图片描述
4.就地初始化
在这里插入图片描述

构造方法

定义:构造方法(也称为构造器)是一个特殊的成员方法,名字必须与类名相同,在创建对象
时,由编译器自动调用,并且在整个对象的生命周期内只调用一次。
作用:就是给对象成员进行初始化,并不负责给对象开辟空间 特点:
1.名字必须和类名相同
2. 没有返回值类型
3. 只调用一次
4. 构造方法可以重载但不可以重写
//当重载时,看实例化时调用哪个方法
5.当没有写构造方法时,编译器会自动生成一份默认的方法//一旦用户定义,编译器不在生成
6.可以在无参构造方法,可以通过this调用其他方法构造方法//this()必须是构造方法中第一条语句

构造方式
public 类名(形参)

在这里插入图片描述
在这里插入图片描述
//this(…)相当于 public Student(String name, int age, int grade)

封装的概念

面向对象程序三大特性:封装、继承、多态 本章先讲封装:
将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互

访问限定符

被public修饰的成员和方法,不管是不同包或者是不同类都可以使用
被protected修饰的类,可以在不同类,或者不同包的子类访问
被default修饰的类,可以在同一包中使用
被private修饰的类,可以在同一包中同一类使用//如若没有访问限定符修饰,为default类型
//一般情况下成员变量设置为private,
//成员方法设为public

在这里插入图片描述

封装扩展之包

为了更好的管理类,把多个类收集在一起成为一组,称为软件包。
一般用 import 包.类名 import static 可以导入包的静态方法和名字

在这里插入图片描述

static成员

在Java中,被static修饰的成员,称之为静态方法,也称之为类成员,是所有对象共享的

在这里插入图片描述

static的特性

1.一般通过类名来访问,也可以用对象访问(但一般不建议)
2.不属于某个具体对象,是类的属性,是所有对象共享的,不存储在某个对象的空间
3. 类变量存储在方法区当中
4. 生命周期伴随类的一生(即:随类的加载而创建,随类的卸载而销毁)
5.不能在静态方法中访问任何非静态成员变量,或者调用任何非静态成员方法

static的初始化

1.就地初始化

在这里插入图片描述

2.静态代码块初始化

在这里插入图片描述

代码块

代码块:使用{}定义的一段代码成为代码块 类型: 1.普通代码块
2. 构造块
3. 静态块
4. 同步代码块//这章不讲

1.普通代码块
在这里插入图片描述
2.构造代码块:一般用于初始化实例
在这里插入图片描述
3.静态代码块//请看静态代码块

注意事项

1.静态代码块不管生成多少个对象,其只会执行一次
2.静态成员变量是类的属性,因此是在JVM加载类时开辟空间并初始化的,实例代码块只有在创建对象时才会执行
3.如果一个类中包含多个静态代码块,在编译代码时,编译器会按照定义的先后次序依次执行(合并)。

内部类

可以将一个类定义在另一个类或者一个方法的内部,前者称为内部类,后者称为外部类。内部类也是封装的一种体现。
列如
内部类分为:实例内部类,静态内部类,局部内部类
在这里插入图片描述

1.实例内部类

从两个方面入手

在内部类访问其他成员
访问内部类成员
1.在实例内部类可以直接访问外部类(任何成员都可以)
//外部类与内部类在同一个类里可以直接访问

在这里插入图片描述

内部类相当于外部类的成员,所以也受public , private 等访问限定符的限制

在这里插入图片描述
在这里插入图片描述

  1. 在实例内部类方法中访问同名的成员时,优先访问自己的,如果要访问外部类同名的成员,必须:外部类名称.this.同名成员 来访问

在这里插入图片描述

  1. 实例内部类对象必须在先有外部类对象前提下才能创建
  2. 外部类中,不能直接访问实例内部类中的成员,如果要访问必须先要创建内部类的对象。

在这里插入图片描述
2.静态变量
//静态内部类中什么都可以定义

  1. 在静态内部类中只能访问外部类中的静态成员
    //如果执意访问 可以在内部类实例化外部类
    在这里插入图片描述
  1. 创建静态内部类对象时,不需要先创建外部类对象
    在这里插入图片描述

在这里插入图片描述

相关文章:

javaSE系列之类与对象

javaSE系列之类与方法什么是类类的定义书写事项什么是实例化this引用this的注意事项对象的初始化构造方法封装的概念访问限定符封装扩展之包static成员static的特性static的初始化代码块注意事项内部类1.实例内部类💗 💗 博客:小怡同学💗 &am…...

远程构建(命令、脚本构建)jenkins

在对应项目,开启远程构建开关添加API token系统设置调整用户权限获取crumbcurl调用构建 1、进入对应项目的设置页面:开启远程构建开关 2、 添加 API token:进入对应用户的设置页面 3、系统设置调整权限,如图 4、由于jenkins的安全…...

2023-03-15 ElasticSearch

ElasticSearch 1.Docker安装ElasticSearch 1.1. es及kibana下载 docker pull elasticsearch:7.4.2 docker pull kibana:7.4.2创建映射文件: mkdir -p /elasticsearch/configmkdir -p /elasticsearch/datamkdir -p /elasticsearch/plugins在config下执行 vim elasticsearch…...

指针和数组笔试题解析【下篇】

文章目录👁️6.指针笔试题👀6.1.试题(1)👀6.2.试题(2)👀6.3.试题(3)👀6.4.试题(4)👀6.5.试题(5&am…...

DHCP原理简析及交互实践

环境: os:centos7 dnsmasq:version 2.76 一. dhcp工作原理 首先补充几个dhcp相关的基本概念: 1、动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种网络管理协议,用于集中对用…...

用二极管、三极管和MOS管搭建逻辑门电路

文章目录1. 二极管(1)二极管与门(2)二极管或门2. 三极管(1)三极管非门(2)三极管与门(3)三极管或门(4)三极管与非门(5&…...

SpringBoot:手写一个 SpringBoot Starter

声明:原文作者:yuan_404 文章目录1. 说明2 . 编写启动器3 . 新建项目测试自己写的启动器1. 说明 启动器模块是一个 空 jar 文件,仅提供辅助性依赖管理,这些依赖可能用于自动装配或者其他类库 命名归约: 官方命名&…...

【23】Verilog进阶 - 数位转换【实时处理 + 标志信号】

【初次尝试】VL32 非整数倍数据位宽转换24to128 1 理解题目含义 根据【模块端口】和【题目描述】本题的真实意思是比较清楚啦。但不可大意轻敌! (1)问题1:输出一直为0 猛然间发现计数值也为0,没有增加 去排查cnt的代码,很容易找到到问题,是cnt上电复位的逻辑写错了 …...

常见的HTTP状态码

一.2开头 200:响应成功; 204:响应成功,但是响应头没有数据; 206:部分响应成功,比如分片上传,断点续传; 二.3开头 301:永久重定向; 302&…...

D. Peculiar Movie Preferences(思维 + 一个坑)

Problem - D - Codeforces 米海打算去看电影。他只喜欢回文电影,所以他想跳过一些(可能是零)场景,让电影的其余部分变成回文。给你一个包含n个长度不超过3的非空字符串的列表,代表Mihai的电影场景。如果s的子序列非空,并且子序列中…...

真1分钟搞懂缓存穿透、缓存击穿、缓存雪崩

💗推荐阅读文章💗 🌸JavaSE系列🌸👉1️⃣《JavaSE系列教程》🌺MySQL系列🌺👉2️⃣《MySQL系列教程》🍀JavaWeb系列🍀👉3️⃣《JavaWeb系列教程》…...

蓝桥刷题总结1

数组三角形 题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个…...

淘宝商品详情数据接口 关键字搜索接口 请求代码分享

item_get-获得淘宝商品详情item_get_app-获得淘宝app商品详情原数据item_search-按关键字搜索淘宝商品参数说明通用参数说明参数不要乱传,否则不管成功失败都会扣费url说明 https://api-gw.onebound.cn/平台/API类型/ 平台:淘宝,京东等&#…...

【数据结构】链表OJ(二)

Yan-英杰的博客 悟已往之不谏 知来者之可追 目录 一、反转链表 二、合并两个有序链表 三、链表分割 四、链表的回文结构 一、反转链表 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 输入:head [1,2] 输出:[2,1] 示例 3&#xf…...

Linux系统搭建FTP服务器

安装vsftpdyum -y install vsftpd添加FTP用户方式1、添加只允许通过ftp访问的用户useradd -d /home/ftp ftp_user #-d指定用户登录时的启始目录方式2、允许用户登录操作系统usermod -d /home/ftp -s /bin/bash ftp_user #-s指定用户登入后所使用的shell设置用户登录密码passwd …...

MySQL数据同步到 Redis 缓存的几种方法

1 Mysql查完数据,再同步写入到Redis中缺点1:会对接口造成延迟,因为同步写入redis本身就有延迟,并且还要做重试,如果redis写入失败,还需要重试,那就更费时间了。缺点2:不解耦&#xf…...

2023年网络安全比赛--CMS网站渗透中职组(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 1.使用渗透机对服务器信息收集,并将服务器中网站服务端口号作为flag提交; 2.使用渗透机对服务器信息收集,将网站的名称作为flag提交; 3.使用渗透机对服务器渗透,将可渗透页面的名称作为flag提交; 4.使用渗透机对服务器渗透,…...

【蓝桥杯集训·每日一题】AcWing 4309. 消灭老鼠

文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴最大公约数一、题目 1、原题链接 4309. 消灭老鼠 2、题目描述 约翰的农场可以看作一个二维平面。 农场中有 n 个老鼠,在毁坏着农田。 第 i 个老鼠的位置坐标为…...

FPGA实现CSI-2 解码MIPI视频 2line 720P分辨率 OV5647采集 提供工程源码和技术支持

目录1、前言2、Xilinx官方主推的MIPI解码方案3、纯Vhdl方案解码MIPI4、vivado工程介绍5、上板调试验证6、福利:工程代码的获取1、前言 FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰…...

JS面试题收集(持续更新好中...)

1.JavaScript 中的垃圾回收机制 定义:指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束。 JavaScript在创建对象时会为它们分配内存,不再使用时会自动释放内存,这个过程称为垃圾收集。 四种常见的内存泄…...

告别繁琐配置:用快马ai一键生成跨平台vscode python开发环境

最近在帮团队新成员配置Python开发环境时,发现虽然VSCode很强大,但初始配置过程对新手来说还是有点复杂。不同操作系统下的路径处理、工具链选择、调试配置这些细节,经常要反复调试才能跑通。后来尝试用InsCode(快马)平台的AI辅助功能&#x…...

计算机毕业设计springboot基于的乡村有机产品交易平台的设计与实现 基于Spring Boot的农特产品线上购销管理系统 利用Spring Boot构建的乡村绿色农产品电商服务平台

计算机毕业设计springboot基于的乡村有机产品交易平台的设计与实现(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 随着互联网技术的深度普及与电子商务的蓬勃发展,消…...

TI-92 Plus计算器超频改造与硬件分析

1. TI-92 Plus图形计算器硬件分析与超频改造1.1 设备概述与历史背景TI-92 Plus是德州仪器(Texas Instruments)于1999年推出的图形计算器产品,采用摩托罗拉68K系列MC68SEC000处理器作为核心运算单元。该设备采用QWERTY全键盘设计,配备大尺寸LCD显示屏&…...

英特尔Linux处理器微码更新:保障系统安全与稳定的关键指南

英特尔Linux处理器微码更新:保障系统安全与稳定的关键指南 【免费下载链接】Intel-Linux-Processor-Microcode-Data-Files 项目地址: https://gitcode.com/gh_mirrors/in/Intel-Linux-Processor-Microcode-Data-Files Intel Linux Processor Microcode Data…...

揭秘ComfyUI-ReActor:AI面部替换技术的平民化革命

揭秘ComfyUI-ReActor:AI面部替换技术的平民化革命 【免费下载链接】ComfyUI-ReActor Fast and Simple Face Swap Extension Node for ComfyUI (SFW) 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-ReActor ComfyUI-ReActor作为ComfyUI平台的核心扩展…...

屏幕水印革命:在代码里嵌入反扫描图腾

引言:测试安全的隐形护盾在软件测试领域,敏感数据泄露如同悬顶之剑——测试用例、缺陷报告、核心算法一旦被非法截屏传播,轻则导致知识产权流失,重则引发商业灾难。传统防护手段(如权限管控)在手机拍照、截…...

数组指针和二级指针之间的区别和用法

一.数组指针形为:int (*p)[x] NULL(x为所指向的一维数组的大小);p指向一个行向量(二维数组)的数组名。例如:int array[][3] {{1,1,2},{2,3,4}};int (*p)[3] array;遍历这个二维数组,可利用该指针来向函数…...

python-学生在线报名考试管理系统vue

目录系统架构设计前端实现(Vue.js)后端实现(Python)数据库设计部署与测试扩展功能项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统架构设计 采用前后端分离架构,前…...

Ollama部署Phi-3-mini全攻略:从安装到提问,新手友好图文指南

Ollama部署Phi-3-mini全攻略:从安装到提问,新手友好图文指南 想体验一个轻量级但能力不俗的AI助手吗?今天我们来聊聊如何用最简单的方式,把微软出品的Phi-3-mini模型部署起来,让它帮你写代码、回答问题、甚至进行创意…...

OpenClaw对接Qwen3-32B-Chat私有镜像:5步完成本地AI助手部署

OpenClaw对接Qwen3-32B-Chat私有镜像:5步完成本地AI助手部署 1. 为什么选择OpenClawQwen3-32B-Chat组合? 上周我在整理历年积累的技术文档时,面对散落在十几个文件夹里的2000多份PDF和Markdown文件,突然意识到手动分类已经不可能…...