当前位置: 首页 > 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在创建对象时会为它们分配内存,不再使用时会自动释放内存,这个过程称为垃圾收集。 四种常见的内存泄…...

2023携程面试题

Java I/O 面试前需要准备: 1. Java 八股文:了解常考的题型和回答思路; 2. 算法:刷 100-200 道题,记住刷题最重要的是要理解其思想,不要死记硬背,碰上原题很难,但 大多数的解题思…...

CANoe中使用CAPL函数接口调用Vflash文件

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…...

三天吃透计算机网络面试八股文

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…...

shp数据添加wkt字段并导出成csv,leaflet绘制使用

准备的东西:软件2跟软件3具体怎么有这些软件需要自行百度postgresql postgis相关 1.shp数据 2.软件2 3.软件3 1.数据导入 首先你得有软件2的数据库,即postgresql数据库,然后通过postgis的插件进行连接并导入数据, 导入数据…...

Java——二叉树的最近公共祖先及二叉搜索树介绍

目录 二叉树的最近公共祖先 题目 思路一:如果给定的是一颗二叉搜索树, 思路二:假设是孩子双亲表示法 二叉搜索树 定义Node类 查找 删除 插入 二叉树的最近公共祖先 题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百…...

Stable Diffusion加chilloutmixni真人图片生成模型,AI绘图杀疯了

上期图文教程,我们分享过AI绘图大模型Stable Diffusion以及中文版本文心AI绘画大模型的基础知识以及代码实现,截至到目前为止。Stable Diffusion模型已经更新到了V2.1版本,其文生图大模型也越来越火,其在2022年底,由AI绘制的图片被荣为国际大奖,让大家对AI绘画大模型也越…...

Matplotlib 绘图实用大全

本文只介绍最简单基本的画图方法 预设 要想画出来的图有些逼格,首先应该进行如下设置 plt.rcParams[font.sans-serif][SimHei] #画图时显示中文字体 plt.rcParams[axes.unicode_minus] False #防止因修改成中文字符,导致某些 unicode 字符不能…...

MyBatis源码用了哪些设计模式?

MyBatis源码用了哪些设计模式?前言一、创建型模式工厂模式单例模式建造者模式二、结构型模式适配器模式代理模式组合模式装饰器模式三、行为型模式模板模式策略模式迭代器模式总结前言 在 MyBatis 的两万多行的框架源码中,使用了大量的设计模式对工程架…...

【16.整数转罗马数字】

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例…...

前端小技巧

1.html 1.1 网站自动刷新 应用场景: 网页定期自动刷新(现在基本淘汰了,采用ajax);自动跳转到指定页面,这个自动跳转的好处就是不需要JS调用,属于纯html网页自动跳转 v7-网站自动刷新 你可以…...

服装设计学什么/佛山网站设计实力乐云seo

草稿如下: 角色(英文)角色(中文)权限Consumer使用者ReadEditor参与者Consumer,Write,CheckOut,下载,ReadPermissionsContributor 协调员Consumer,AddChildren,ReadPermissionsCollaborator 合作…...

wordpress图片位置/网络服务器地址怎么查

系统安装 首先添加ovirt官方repoyum install -y http://resources.ovirt.org/pub/yum-repo/ovirt-release42.rpm 安装createrepo工具yum install -y createrepo 修改YUM配置接下来修改YUM配置,用来保留随后进行安装时候会下载到的所有包。注意这一步一定要放在添加o…...

做报价在哪个网站询价/在线外链

一、 Grid a. 单元格的宽度可以设置三类值 绝对值:double数值加单位后缀 比例值:double数值加一个星号* 自动值: auto,高度将有内部的控件的高度和宽度决定。 b. Grid可接受的宽度和高度的单位 1in96px 1cm(96/2.54)px 1pt(96/72) px c. 示例 123456789…...

南京在线网站制作/福建seo关键词优化外包

今天偶尔处理到了冷僻字这个问题。我们知道,在c中如果是这样一个string a"中国";那么它的长度就是4,也就是每个汉字占两个字节但是在c#中这样一个语句下来长度就变成了2,后来有人告诉我是因为存储编码的方式不同,我还没…...

wordpress内容页主题修改/百度站长平台链接

一、RabbitMQ简述与其docker安装 这里主要讲解实战整合rabbitMQ&#xff0c;了解RabbitMQ简述与其docker安装请点击&#xff1a;传送门 二、springboot整合rabbitMQ 1.新建springboot项目 2.pom:主要添加以下两个依赖 <dependency><groupId>org.springframework.bo…...

做网站多少钱西宁君博领衔/中国最新新闻

今天上午讲解了C语言的一道练习题&#xff0c;有5个字符串&#xff0c;首先将它们按照字符串中的字符个数由小到大排列&#xff0c;再分别取出每个字符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格)。要求&#xff1a;利用字符串指针和指针数组实现。代码…...