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金融产品销售系统的设计与实现
博主主页:一季春秋博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容:毕业设计(Java项目、小程序、安卓等)、简历模板、学习资料、…...
【面试题精讲】Mysql如何实现乐观锁
❝ 有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top ❞ 首发博客地址 文章更新计划 系列文章地址 在 MySQL 中,可以通过使用乐观锁来实现并发控制,以避免数据冲突和并发更新问…...
从零开始搭建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中,你可以使用插件"Beautify"来格式化你的HTML代码,使其更加整齐清晰。而对于JSON代码,你可以使用"vscode-json"插件来格式化为易读的树状结构,方便查看和编辑。这些插件可以帮助你更加高效地整理HTM…...
盘点总结汇总植物病虫害、人体疾病识别相关的项目实践
在前面的很多项目中做了许多有关于植物病虫害比如:苹果病虫害、番茄病虫害、小麦病虫害、辣椒病虫害、白菜病虫害、木薯病虫害、葡萄病虫害、柑橘病虫害等等,还有一些是有关于人体疾病识别相关的,比如:病理细胞识别、癌症识别、皮…...
【测试开发】用例篇 · 熟悉黑盒测试用例设计方法(2)· 正交表 · 场景设计 · 常见案例练习
【测试开发】用例篇(2) 文章目录 【测试开发】用例篇(2)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因在内存管理上的独到之处,近年来受到了不少开发者的青睐。Rust内存管理的核心功能就是所有权。不同的语言采取了不同的内存管理方式,主要分为开发者手动管理或者编译器辅助管理,以及垃圾回收机制等。Rust的所有权机制,有别于…...
Vue路由跳转至页面后多次渲染
在 Vue 中,当你跳转到一个新的路由或者重新加载当前路由时,由于 Vue Router 或其他路由管理工具的机制,会导致该页面组件重新渲染多次的情况发生。这可能是因为以下原因: 组件复用:Vue Router 默认情况下会尝试复用已经…...
CDH大数据平台集群部署
文章目录 1. 资源准备2. 部署 Mariadb 数据库3. 安装CM服务4. 安装数据节点5. 登录CM系统 1. 资源准备 准备好CDH安装包资源,官方网站下载需要账号,如果没有账号可以去网上到处搜搜。主要涉及到的资源有: cloudera-manager-servercloudera-m…...
基于springboot+vue的校园资产管理系统
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...
@RequestMapping 注解使用技巧
一、RequestMapping 基础用法 用于将任意HTTP 请求映射到控制器方法上。 RequestMapping表示共享映射,如果没有指定请求方式,将接收GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECT所有的HTTP请求方式。GetMapping、PostMapping、PutMapp…...
AtCoder 265G 线段树
题意 传送门 AtCoder 265G 012 Inversion 题解 直接维护逆序对数量比较困难,考虑到元素值域很小,直接将不同数值对解耦进行维护。具体而言,线段树维护区间 0 , 1 , 2 0,1,2 0,1,2 的数量,以及满足 i < j i<j i<j 时…...
通俗易懂了解大语言模型LLM发展历程
1.大语言模型研究路程 NLP的发展阶段大致可以分为以下几个阶段: 词向量词嵌入embedding句向量和全文向量理解上下文超大模型与模型统一 1.1词向量 将自然语言的词使用向量表示,一般构造词语字典,然后使用one-hot表示。 例如2个单词&…...
Vim - 快速插入C语言函数注释模板
背景 C语言使用vim编写时,需要快速对函数进行说明头插入; 代码 function! InsertCFunctionHeader()" 获取当前行内容let line getline(.)" 匹配 C 函数定义let matched matchlist(line, ^\s*\w\ \\(\w\\)(\(.*\)))" 如果当前行不是函…...
Leetcode171. Excel 表列序号
给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 题解:力扣(LeetCode)官网 - 全球极客挚爱…...
自主设计,模拟实现 RabbitMQ - 实现 拒绝/否定 应答机制
目录 一、拒绝/否定 应答机制 1.1、需求分析 什么是 拒绝/否定 应答呢?...
在github上设置不同分支,方便回滚
在github上设置不同分支,方便回滚 步骤可能出现的问题couldnt find remote ref gpuVersion1. 确保您处于正确的分支2. 添加并提交更改(如果还未进行)3. 推送本地分支到远程仓库4. 验证操作 步骤 之前在github上上传了一个项目代码,…...
【Elsevier旗下】JCR2/3区,最快25天录用!计算机与娱乐、教育、游戏、新媒体均可
期刊简介: 出版社:Elsevier 影响因子(2022):2.5-3.0 期刊分区:JCR2/3区,中科院4区 检索数据库:SCIE 在检 数据库检索年份:2016年 预警情况:无中科院预警…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
