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

Java面向对象(1)

static静态变量

在这里插入图片描述

public class Student {static String name;private double score;public Student(){};public Student(double score) {this.score = score;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}
}
public class test {public static void main(String[] args) {Student.name="刘";Student s1=new Student();s1.name="马";Student s2=new Student();s2.name="秋";System.out.println(Student.name);}
}//秋

static只有一个变量,所以修改别的类中的变量,所以的name都会变化。

应用场景

比如系统的中统计用户的个数,在每次用户类中的构造函数中++。

public class User {public static int num;//初始为0public User(){User.num+=1;}
}
public class test {public static void main(String[] args) {User u1=new User();User u2=new User();User u3=new User();User u4=new User();User u5=new User();User u6=new User();System.out.println(u1.num);}
}
//输出 6

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

public class LoginDemo {public static void main(String[] args) {String code="";String data="qwertyuiopasdfghjklzxcvbnm";Random r=new Random();for(int i=0;i<4;++i){int t=r.nextInt(data.length());code+=data.charAt(t);}System.out.println(code);}
}
public class RegisterDemo {public static void main(String[] args) {String code="";String data="qwertyuiopasdfghjklzxcvbnm";Random r=new Random();for(int i=0;i<4;++i){int t=r.nextInt(data.length());code+=data.charAt(t);}System.out.println(code);}
}

上述两个代码可以改成如下:

public class MyUtil {public static String createCode(int n) {String code="";String data="qwertyuiopasdfghjklzxcvbnm";Random r=new Random();for(int i=0;i<n;++i){int t=r.nextInt(data.length());code+=data.charAt(t);}return code;}
}
public class LoginDemo {public static void main(String[] args) {System.out.println(MyUtil.createCode(4));}
}
public class RegisterDemo {public static void main(String[] args) {System.out.println(MyUtil.createCode(5));}
}

这样就会简洁很多。
在MyUtil中加入private MyUtil(){};后,这样可以防止别的代码中创建MyUtil类。

在这里插入图片描述

静态代码块

public class Student {static int num;static {System.out.println("静态代码块执行了");}
}
public class Test {public static void main(String[] args) {System.out.println(Student.num);System.out.println(Student.num);}
}
//输出
//静态代码块执行了
//0
//0

静态代码块只有在创建的第一次会执行。一般用来对类变量进行初始化赋值。

实例代码块

在这里插入图片描述

public class Student {public Student(){System.out.println("无参构造函数执行了");}public Student(String name){System.out.println("有参构造函数执行了");}{System.out.println("实例代码块执行了");}
}
public class Test {public static void main(String[] args) {Student stu=new Student();}
}
//输出
实例代码块执行了
无参构造函数执行了

单例模式

在这里插入图片描述
饿汉式单例
在还没有创建对象的时候就自己创建了

public class A {private static A a=new A();private A(){}public static A getObject(){return a;}
}
public class Test {public static void main(String[] args) {A a1=A.getObject();A a2=A.getObject();System.out.println(a1);System.out.println(a2);}
}
//输出
com.peng.test.single.A@4eec7777
com.peng.test.single.A@4eec7777

在这里插入图片描述
懒汉式单例
只有创建对象的时候才会创建,并且只能有一个对象

//懒汉式单例
public class B {private static B b;private B(){}public static B getInstance(){if(b==null){b = new B();}return b;}
}
public class Test {public static void main(String[] args) {B b1=B.getInstance();B b2=B.getInstance();System.out.println(b1);System.out.println(b2);}
}
//输出
com.peng.test.single.B@4eec7777
com.peng.test.single.B@4eec7777

继承

在这里插入图片描述
继承不能继承多个,但是可以多层。
任何类都默认继承Object类,
在这里插入图片描述

public class A {public int i;public void printi(){System.out.println("公共的可以继承");}private int j;private void printj(){System.out.println("私有的不可以继承");}}
public class B extends A {public void printb(){i=0;System.out.println(i);printi();}
}

继承的应用

public class people {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}
}
public class teacher {private int salary;public int getSalary() {return salary;}public void setSalary(int salary) {this.salary = salary;}
}
public class student {private String subject;public String getSubject() {return subject;}public void setSubject(String subject) {this.subject = subject;}
}
public class Test {public static void main(String[] args) {teacher t=new teacher();t.setName("刘");t.setSalary(100);System.out.println(t.getName());System.out.println(t.getSalary());}}
//输出100

修饰符

在这里插入图片描述

方法重写

在这里插入图片描述
在这里插入图片描述
重写的前面要加上@Override,便于理解。
继承变量中会就近原则。如果非要访问父类的变量,就用super来访问。

public class people {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public void print_people(){System.out.println("1111");}
}
public class teacher extends people{private int salary;public int getSalary() {return salary;}public void setSalary(int salary) {this.salary = salary;}@Overridepublic void print_people(){System.out.println("66666");}
}
public class Test {public static void main(String[] args) {teacher t=new teacher();t.print_people();}
}

在这里插入图片描述

相关文章:

Java面向对象(1)

static静态变量 public class Student {static String name;private double score;public Student(){};public Student(double score) {this.score score;}public double getScore() {return score;}public void setScore(double score) {this.score score;} }public class t…...

【计算机毕业设计】基于SpringBoot+Vue金融产品销售系统的设计与实现

博主主页&#xff1a;一季春秋博主简介&#xff1a;专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发&#xff0c;远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容&#xff1a;毕业设计(Java项目、小程序、安卓等)、简历模板、学习资料、…...

【面试题精讲】Mysql如何实现乐观锁

❝ 有的时候博客内容会有变动&#xff0c;首发博客是最新的&#xff0c;其他博客地址可能会未同步,认准https://blog.zysicyj.top ❞ 首发博客地址 文章更新计划 系列文章地址 在 MySQL 中&#xff0c;可以通过使用乐观锁来实现并发控制&#xff0c;以避免数据冲突和并发更新问…...

从零开始搭建java web springboot Eclipse MyBatis jsp mysql开发环境

文章目录 1 第一步软件安装1.1 下载并安装Eclipse1.2 下载并安装Java1.3 下载并安装Apache Maven1.4 下载并安装MySQL 2 创建所需要的表和数据3 创建Maven 工程、修改jdk4 通过pom.xml获取所需要的jar包5 安装Eclipse的MyBatis插件6 创建文件夹以及jsp文件7 创建下面各种java类…...

【VsCode】整理代码

在VsCode中&#xff0c;你可以使用插件"Beautify"来格式化你的HTML代码&#xff0c;使其更加整齐清晰。而对于JSON代码&#xff0c;你可以使用"vscode-json"插件来格式化为易读的树状结构&#xff0c;方便查看和编辑。这些插件可以帮助你更加高效地整理HTM…...

盘点总结汇总植物病虫害、人体疾病识别相关的项目实践

在前面的很多项目中做了许多有关于植物病虫害比如&#xff1a;苹果病虫害、番茄病虫害、小麦病虫害、辣椒病虫害、白菜病虫害、木薯病虫害、葡萄病虫害、柑橘病虫害等等&#xff0c;还有一些是有关于人体疾病识别相关的&#xff0c;比如&#xff1a;病理细胞识别、癌症识别、皮…...

【测试开发】用例篇 · 熟悉黑盒测试用例设计方法(2)· 正交表 · 场景设计 · 常见案例练习

【测试开发】用例篇&#xff08;2&#xff09; 文章目录 【测试开发】用例篇&#xff08;2&#xff09;1. 正交表法1.1 什么是正交表1.2 两个重要概念1.3 如何通过正交表设计测试用例1.3.1 充分理解需求1.3.2 确定因素、确定水平1.3.3 allpairs画正交表1.3.4 补充正交表1.3.5 将…...

【ES】笔记-数值扩展

数值扩展 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>数值扩展</title> </head> &l…...

浅谈Rust内存管理

Rust因在内存管理上的独到之处&#xff0c;近年来受到了不少开发者的青睐。Rust内存管理的核心功能就是所有权。不同的语言采取了不同的内存管理方式&#xff0c;主要分为开发者手动管理或者编译器辅助管理&#xff0c;以及垃圾回收机制等。Rust的所有权机制&#xff0c;有别于…...

Vue路由跳转至页面后多次渲染

在 Vue 中&#xff0c;当你跳转到一个新的路由或者重新加载当前路由时&#xff0c;由于 Vue Router 或其他路由管理工具的机制&#xff0c;会导致该页面组件重新渲染多次的情况发生。这可能是因为以下原因&#xff1a; 组件复用&#xff1a;Vue Router 默认情况下会尝试复用已经…...

CDH大数据平台集群部署

文章目录 1. 资源准备2. 部署 Mariadb 数据库3. 安装CM服务4. 安装数据节点5. 登录CM系统 1. 资源准备 准备好CDH安装包资源&#xff0c;官方网站下载需要账号&#xff0c;如果没有账号可以去网上到处搜搜。主要涉及到的资源有&#xff1a; cloudera-manager-servercloudera-m…...

基于springboot+vue的校园资产管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...

@RequestMapping 注解使用技巧

一、RequestMapping 基础用法 用于将任意HTTP 请求映射到控制器方法上。 RequestMapping表示共享映射&#xff0c;如果没有指定请求方式&#xff0c;将接收GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECT所有的HTTP请求方式。GetMapping、PostMapping、PutMapp…...

AtCoder 265G 线段树

题意 传送门 AtCoder 265G 012 Inversion 题解 直接维护逆序对数量比较困难&#xff0c;考虑到元素值域很小&#xff0c;直接将不同数值对解耦进行维护。具体而言&#xff0c;线段树维护区间 0 , 1 , 2 0,1,2 0,1,2 的数量&#xff0c;以及满足 i < j i<j i<j 时…...

通俗易懂了解大语言模型LLM发展历程

1.大语言模型研究路程 NLP的发展阶段大致可以分为以下几个阶段&#xff1a; 词向量词嵌入embedding句向量和全文向量理解上下文超大模型与模型统一 1.1词向量 将自然语言的词使用向量表示&#xff0c;一般构造词语字典&#xff0c;然后使用one-hot表示。   例如2个单词&…...

Vim - 快速插入C语言函数注释模板

背景 C语言使用vim编写时&#xff0c;需要快速对函数进行说明头插入&#xff1b; 代码 function! InsertCFunctionHeader()" 获取当前行内容let line getline(.)" 匹配 C 函数定义let matched matchlist(line, ^\s*\w\ \\(\w\\)(\(.*\)))" 如果当前行不是函…...

Leetcode171. Excel 表列序号

给你一个字符串 columnTitle &#xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如&#xff1a; A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 题解&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱…...

自主设计,模拟实现 RabbitMQ - 实现 拒绝/否定 应答机制

目录 一、拒绝/否定 应答机制 1.1、需求分析 什么是 拒绝/否定 应答呢?...

在github上设置不同分支,方便回滚

在github上设置不同分支&#xff0c;方便回滚 步骤可能出现的问题couldnt find remote ref gpuVersion1. 确保您处于正确的分支2. 添加并提交更改&#xff08;如果还未进行&#xff09;3. 推送本地分支到远程仓库4. 验证操作 步骤 之前在github上上传了一个项目代码&#xff0c…...

【Elsevier旗下】JCR2/3区,最快25天录用!计算机与娱乐、教育、游戏、新媒体均可

期刊简介&#xff1a; 出版社&#xff1a;Elsevier 影响因子&#xff08;2022&#xff09;&#xff1a;2.5-3.0 期刊分区&#xff1a;JCR2/3区&#xff0c;中科院4区 检索数据库&#xff1a;SCIE 在检 数据库检索年份&#xff1a;2016年 预警情况&#xff1a;无中科院预警…...

Qwen2.5-VL半监督学习效果展示:有限标注下的性能提升

Qwen2.5-VL半监督学习效果展示&#xff1a;有限标注下的性能提升 1. 引言 在AI视觉领域&#xff0c;标注数据一直是制约模型性能的关键因素。传统监督学习需要大量人工标注&#xff0c;成本高、周期长&#xff0c;让很多企业和研究者望而却步。但今天&#xff0c;随着半监督学…...

ESLyric歌词源一站式配置:Foobar2000多平台格式转换高效解决方案

ESLyric歌词源一站式配置&#xff1a;Foobar2000多平台格式转换高效解决方案 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource ESLyric歌词源是Foobar2000播…...

nomic-embed-text-v2-moe保姆级教程:Gradio自定义CSS主题与响应式布局

nomic-embed-text-v2-moe保姆级教程&#xff1a;Gradio自定义CSS主题与响应式布局 1. 从零开始&#xff1a;认识nomic-embed-text-v2-moe 如果你正在寻找一个既强大又好用的文本嵌入模型&#xff0c;特别是需要处理多语言内容&#xff0c;那么nomic-embed-text-v2-moe绝对值得…...

搞懂 SAP Fiori 前端服务器授权模型:从看得见应用,到真正拿到数据

在很多 SAP 项目里,权限问题最容易制造一种很迷惑的现象:用户明明已经拿到了角色,却还是打不开应用;或者磁贴已经能看见了,点进去却报错;再或者应用能启动,却一条业务数据都读不出来。要把这类问题讲清楚,关键不在于死记事务码,而在于真正理解 SAP Fiori 的授权是如何…...

AI编程实战:如何用Cursor和Coze在1小时内完成文生图小程序开发

AI编程实战&#xff1a;如何用Cursor和Coze在1小时内完成文生图小程序开发 当产品灵感突然闪现&#xff0c;如何在最短时间内将它变成可交互的原型&#xff1f;传统开发流程中&#xff0c;从UI设计到API对接至少需要数天时间。而现在&#xff0c;借助AI编程工具链&#xff0c;我…...

Abaqus数值模拟案例研究:随机纤维分布二维RVE模型中的微观横向拉伸损伤与延性损伤评估

abaqus数值模拟案例系列-随机纤维分布二维RVE模型微观横向拉伸损伤&#xff0c;设置了周期边界&#xff0c;采用Drucker-Prager&#xff08;dp&#xff09;准则&#xff0c;Ductile-Damage延性损伤&#xff0c;界面采用cohesive单元&#xff0c;采用牵引分离方法&#xff0c;Qu…...

避开这些坑!群晖+acme.sh申请Let’s Encrypt证书的完整指南

群晖NAS上零踩坑申请Lets Encrypt证书的终极实践手册 每次看到浏览器地址栏那个刺眼的"不安全"提示就浑身难受&#xff1f;作为群晖深度用户&#xff0c;我花了三个周末时间踩遍了所有证书申请的坑。从idn指令缺失到nss验证失败&#xff0c;从API调用超时到证书自动更…...

Halcon HImage转Bitmap性能大比拼:实测unsafe方案比安全方案快30倍的背后原因

Halcon HImage转Bitmap性能优化实战&#xff1a;从30倍差距到工业级解决方案 在工业视觉检测和实时图像处理领域&#xff0c;毫秒级的性能差异可能意味着生产线能否稳定运行。最近在为一个汽车零部件检测系统做性能优化时&#xff0c;我意外发现Halcon的HImage转Bitmap操作竟成…...

OpenRGB:一键终结RGB灯光混乱,开源免费的多品牌设备统一控制方案

OpenRGB&#xff1a;一键终结RGB灯光混乱&#xff0c;开源免费的多品牌设备统一控制方案 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgra…...

OpenClaw操作录制:ollama-QwQ-32B学习人工流程生成自动化脚本

OpenClaw操作录制&#xff1a;ollama-QwQ-32B学习人工流程生成自动化脚本 1. 为什么需要操作录制功能 上周我在整理月度运营报告时&#xff0c;突然意识到自己正在重复第7次执行完全相同的操作流程&#xff1a;打开三个数据源表格→复制特定列→粘贴到汇总表→生成折线图→导…...