爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      Java接口学习(接口的使用、简单工厂、代理模式、接口和抽象类的区别)

      首页 知识中心 软件开发 文章详情页

      Java接口学习(接口的使用、简单工厂、代理模式、接口和抽象类的区别)

      2024-05-13 07:32:14 阅读次数:46

      Java,接口

      前言引入

      官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

      我的理解:接口可以理解为一种特殊的抽象类,里面全部是由全局常量和公共的抽象方法所组成。接口是解决Java无法使用多继承的一种手段,可以实现多个接口的实现,但是接口在实际中更多的作用是制定标准的。或者我们可以直接把接口理解为100%的抽象类,接口中的方法必须全部是抽象方法。

      一、接口的基本概念与主要特点;
      二、接口的使用;
      三、接口应用:简单工厂设计模式、代理设计模式简单实现。

      一、接口的基本概念与主要特点

      • 如果一个类中只是由抽象方法和全局变量所组成,那么在这种情况下不会定义为抽象类,而会定义为接口,接口严格来讲是一个抽象类,而且这个类里面只有抽象方法和全局变量,没有构造方法。

      1.1 接口特点

      就像一个类一样,一个接口也能够拥有方法和属性,但是在接口中声明的方法默认是抽象的。(即只有方法标识符,而没有方法体)。

      • 接口不能实例化,可以按照多态的方式来实例化;
      • 接口没有构造方法;
      • 接口指明了一个类必须要做什么和不能做什么,相当于类的行为的规划;
      • 一个接口就是描述一种能力,比如 “Animal” 也可以作为一个接口,并且任何实现“Animal”接口的类都必须有能力实现 “奔跑”这个动作(或者implement run()方法),所以接口的作用就是告诉类,你要实现我这种接口代表的功能,你就必须实现某些方法,我才能承认你确实拥有该接口代表的某种能力;
      • 如果一个类实现了一个接口中要求的所有的方法,然而没有提供方法体而仅仅只有方法标识,那么这个类一定是一个抽象类。(牢记:抽象方法只能存在于抽象类或者接口中,但抽象类中却能存在非抽象方法,即有方法体的方法。接口是百分之百的抽象类)

      一个JAVA库中接口的例子是:Iterator 接口,这个接口代表了“能够进行迭代遍历”这种能力,任何类只要实现了这个 “ Iterator” 接口的话,这个类也具备了 “迭代遍历” 这种能力,那么就可以用来进行元素遍历操作了。

      1.2 为什么要用接口

      1. 接口被用来描述一种抽象,表达的一种 “ has - a” 关系,方便以后功能的扩展。
      2. Java可以通过实现接口来弥补单继承局限。
      3. 接口用来实现解耦,制定一种标准。
      4. 接口定义的变量一定是public static final 的,实现 此接口的类都可以使用这个变量。

      二、接口的使用

      2.1 接口的定义

      要定义一个接口使用 interface 关键字完成。

      interface A{ // 定义接口
      	public static final String MSG="hello";
          //	抽象方法
      	public abstract void print();
      }
      

      由于接口里面存在有抽象方法,所以接口对象不能用关键字new进行实例化的操作。先说几个接口使用的限制:

      • 接口必须要有子类实现,此时一个子类可以使用implement关键字实现多个接口;
      • 接口的子类(如果不是抽象类),必须要覆写接口中的全部抽象方法;
      • 接口中的对象可以利用子类对象的向上转型进行实例化的操作。

      范例:实现接口

      interface A {  // 定义了接口
      	public static final String MSG = "hello";
          // 抽象方法
      	public abstract void print();
      }
      interface B {
      	public abstract void get();
      }
      class X implements A,B { // 实现多个接口
      	public void get() {
      		System.out.println("B接口的抽象方法");
      	}
      	public void print() {
      		System.out.println("A接口的抽象方法");
      	}
      }
      public class TestDemo {
      	public static void main(String args[]){
             X x = new C();//实例化子类对象
             A a = x;
             B b = x;
      	//	A a = new X();//向上转型
      	//	B b = new X();//向上转型
      		a.print();
      		b.get();
      	}
      }
      

      以上的代码实例化了 “x” 对象,由于 X 是 A 和 B 的子类,那么 X 类对象可以变为 A 接口或 B 接口类的对象。

      在定义上 A 和 B 接口没有任何的直接联系,但是这两个接口却同时拥有一个子类: X 子类,不要被类型和名称所迷惑,因为最终实例化的 X 的子类,而这个子类属于 B 类的对象,所以以上的代码行的通,代码编写上并不是很友好。

      • 子类除了可以实现接口,还可能去继承抽象类,所以说一个子类又要继承抽象类,还要实现接口的话,先使用extends继承,而后使用implements实现。

      2.2 子类继承和接口实现使用

      代码示例(即有继承关系又有接口实现)

        interface A { // 定义了接口
          	public static final String MSG = "hello";
              // 抽象方法
          	public abstract void print();
          }
          interface B {
          	public abstract void get();
          }
          abstract class C { // 定义一个抽象类
          	public abstract void change();
          }
          class X extends C implements A,B {//先继承,再实现接口
          	public void get() {
          		System.out.println("B接口的抽象方法");
          	}
          	public void print() {
          		System.out.println("A接口的抽象方法");
          	}
          	public void change(){
          		System.out.println("C类的抽象方法");
          	}
          }
      

      对接口而言,发现里面的组成是抽象方法和全局变量,所以很多的时候有些人为了简略不会写 abstract 和 public static final,并且在方法上是否编写 public 结果都是一样的,因为在接口里面只能够使用一种访问权限——public。以下两个接口的定义效果是一样的:

      interface A{
      	public static final String MSG="HELLO";
      	public void fun();
      }
      // 另一种定义方式 ,常量的话 我们 一般 写成  public static final String MSG = “Hello”;	
      Interface A{
         String MSG=”HELLO”;
         void fun();
      }
      

      一个抽象类可以继承一个抽象类,一个接口可以使用extends关键字同时继承多个接口,接口不可以继承抽象类。

      2.3 接口的多继承

      范例:接口的多继承

      interface A {
      	public void funA();
      }
      interface B {
      	public void funB();
      }
      interface C extends A,B {
      	public void funC();
      }
      class X implements C {
      	public void funA() {    } // 覆写全部的方法
      	public void funB() {	}
      	public void funC() {	}
      }
      

      从继承关系上讲接口比抽象类的优势明显:

      • 一个抽象类只能继承一个抽象类,而接口没有这个限制;

      • 一个子类只能够继承一个抽象类,而却可以实现多个接口。

      在java中,接口解决了单继承的局限性问题。 虽然从接口本身的概念来讲只能够由抽象方法和全局变量所组成,但是所有的内部结构不受这些要求的限制,也就是说在接口中可以定义普通内部类、抽象内部类、内部接口。

      2.4 在接口中定义抽象类和 static 接口

      范例:在接口里定义抽象类

      interface A{
      	public void funA();
      	
      	// 独立的class文件,
      	abstract class B{
              // 在接口中的abstract可以不用写,但在抽象类中的抽象方法必须要写abstract
      		public abstract void funB();
      	}
      	
      	interface Entry { // 接口中定义接口 ,Map.Entry  HashMap 源码   Collection 中的 Iterator 接口
      		
      	}
      }
      class X implements A { // X 实现了A接口
      	public void funA() {
      	
      		System.out.println("Hello World");
      	}
      	class Y extends B { // 内部类 Y继承了抽象类 B 实现了  funB() 方法
      			public void funB () {
      			System.out.println("hello C");
      		}	
      	}
      }
      

      在接口中定义static接口

       interface A {
          	public void funA();
              // static声明的内部接口为外部接口,static声明的内部类为外部类
          	static interface B{ // 外部接口,
          		public void funB();
          	}
          }
      
      class X implements A.B{ // 实现时使用“类名.内部接口”
      	public void funB() {
      	}	
      

      先期总结:接口在实际的开发中三大核心作用:

      • 定义不同层之间的操作标准;
      • 表示一种操作的能力;
      • 表示将服务端的远程方法视图暴露给客户。

      2.5 接口中的实际应用——标准

      电脑上可以使用U盘、Mp3、打印机,这些设备都是连接到USB设备上的。

      Java接口学习(接口的使用、简单工厂、代理模式、接口和抽象类的区别)

      • 所有的代码如果要进行开发,一定要首先开发出USB接口标准,因为有了标准后电脑才可以去使用这些标准,设备厂商才可以设计USB设备。

      范例:定义USB标准(标准可以连接不同层的操作)

      // 标准可以连接不同层的操作
      interface USB { // 定义标准一定是接口
      	public void start();
      	public void stop();
      }  
      

      范例:定义电脑
      不管以后有多少个设备,只要它是 USB 标准的实现子类,它都可以在电脑上使用。

      class Computer {
      	public void plugin(USB usb){//插入
      		usb.start();
      		usb.stop();
      	}
      }
      

      范例:定义U盘

      class Flash implements USB {
      	public void start(){
      		System.out.println("U盘开始使用");
      	}
      	public void stop(){
      		System.out.println("u盘停止使用");
      	}
      }
      

      范例:定义打印机

      class Print implements USB {
      	public void start(){
      		System.out.println("打印机开始工作");
      	}
      	public void stop(){
      		System.out.println("打印机停止工作");
      	}
      }
      

      按照这样的方式,准备好多个子类都可以在电脑的plugin()方法上使用

      interface USB{//定义标准一定是接口
      	public void start();
      	public void stop();
      }
      class Computer {
      	public void plugin(USB usb){//插入
      		usb.start();
      		usb.stop();
      	}
      }
      class Flash implements USB{
      	public void start(){
      		System.out.println("U盘开始使用");
      	}
      	public void stop(){
      		System.out.println("u盘停止使用");
      	}
      }
      class Print implements USB{
      	public void start(){
      		System.out.println("打印机开始工作");
      	}
      	public void stop(){
      		System.out.println("打印机停止工作");
      	}
      }
      public class TestDemo {
      	public static void main(String args[]){
      		Computer com = new Computer();
      		com.plugin(new Flash());
      		com.plugin(new Print());
      	}
      }
      

      在现实生活中,标准的概念随处可见,而在程序里面标准就是用接口来实现的。

      三、接口的应用(简单工厂和代理)

      3.1 接口的应用——工厂设计模式(Factory 简单介绍)

      下面观察一段程序代码

      interface Fruit {
      	public void eat();
      }
      class Apple implements Fruit {
      	public void eat() {
      		System.out.println("吃苹果");
      	}
      }
      public class TestDemo {
      	public static void main(String args[]){
      		Fruit f = new Apple();
      		f.eat();
      }
      

      以上的程序可以通过主方法得到Fruit接口对象,这种代码设计有问题吗?
      本端程序的问题就是出现了关键字“new”。

      评判一段代码是否真的好,有这么几个标准:

      • 客户端可以调用,不需要关注具体的细节;
      • 客户端之外的代码修改,不影响用户端的使用,即:用户端可以不关
        心代码是否变更。
        一个接口不可能只有一个子类,对于Fruit也有可能产生多个子类对象(Apple,Orange)。

      现在每次客户端想要得到新的子类对象,都需要修改代码,如果在客户端实例化对象,那么每一要更换对象对象,都需要修改客户端上的代码,这样的做法是不友好的。

      • 现在要解决是如何得到一个Fruit接口对象,而后进行方法的调用,至于这个接口对象是被谁实例化的,不是我客户端的工作。现在最大的问题在于关键字new,这一问题可以理解为耦合度太高。耦合度太高的直接问题就是代码不方便维护,相当于A与B绑定在一起。

      程序 -> JVM -> 适应不同的操作系统(A->C->B)

      范例:增加一个过渡

      class Factory {
      	public static Fruit getInstance(String className){
      		if ("apple".equals(className)) {
      			return new Apple();
      		} else if ("orange".equals(className)) {
      			return new Orange();
      		} else {
      			return null;
      		}
      	}
      }
      public class TestDemo {
      	public static void main(String args[]){
      		Fruit f = Factory.getInstance("apple");
      		f.eat();
      	}
      }
      
      • 现在的客户端不会看见具体的子类,因为所有的接口对象都是通过Factory类取得子类对象,则只需要修改Factory类即可,但是客户端不会发生变化。
        Java接口学习(接口的使用、简单工厂、代理模式、接口和抽象类的区别)

      工厂类跟操作的接口类有关,也跟所有的子类有关;客户端可看见接口,还可以看见工厂,客户端使用getInstance()方法找到工厂类中定义的方法,这个方法返回接口对象,通过接口对象就可以获得接口中的操作方法。

      面试题:请编写一个Factory程序

      3.2 接口的应用——代理设计模式(Proxy简单介绍)

      皇帝宠幸妃子的为例,具体步骤图中已经列出。
      Java接口学习(接口的使用、简单工厂、代理模式、接口和抽象类的区别)
      范例:转换为程序

      interface Subject { // 整个操作的核心
      	public void makeLove(); // 整个临幸的核心功能
      }
      class RealSubject implements Subject { // 一个接口两个主题 
      	public void makeLove() {
      		System.out.println("正在");
      	}
      }
      class ProxySubject implements Subject {//内务
      	private Subject subject;
          // 要接受一个真正主题的操作对象
      	public ProxySubject(Subject subject){
      		this.subject = subject;
      	}
      	public void prepare(){ // 扩展的功能
      		System.out.println("为临幸做准备");
      	}
      	public void makeLove() {
      		this.prepare();
      		this.subject.makeLove(); // 告诉皇帝可以开始了
      		this.end();
      	}
      	public void end() { // 扩展的功能
      		System.out.println("娘娘带走,皇帝睡觉");
      	}
      }
      public class TestDemo {
      	public static void main(String args[]){
      		Subject sub = new ProxySubject(new RealSubject());
      		sub.makeLove();//调用的是代理操作
      	}
      }
      
      • 代理设计模式的核心精髓就在于一个主题操作接口(可能有多种方法),核心业务主题只完成核心功能。而代理主题负责所有与核心主题有关的辅助型操作。

        Java接口学习(接口的使用、简单工厂、代理模式、接口和抽象类的区别)
        代理模式的主要角色如下。

      • 代理主题类(Subject ):通过接口或抽象类声明真实主题和代理对象实现的业务方法。

      • 真实主题类(RealSubject):实现了抽象主题中的具体业务,是代理对象所代表的真实对象,是最终要引用的对象。

      • 代理(ProxySubject)类:提供了与真实主题相同的接口,其内部含有对真实主题的引用,它可以访问、控制或扩展真实主题的功能。

      使用代理(静态代理)的目的和缺陷:

      • 可以做到在不修改目标对象的功能前提下,对目标功能扩展.
      • 缺点:
        • 因为代理对象需要与目标对象实现一样的接口,所以会有很多代理类,类太多.同时,一旦接口增加方法,目标对象与代理对象都要维护.

      面试题:请编写一个Proxy模式程序

      四、抽象类与接口的区别(面试题)

      抽象类和接口使用的形式上是十分相似的。

      4.1 表格对比
      Java接口学习(接口的使用、简单工厂、代理模式、接口和抽象类的区别)
      4.2 文字描述

      接口与抽象类的区别:

       

      • 抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象,也就是对方法的抽象。

       

      • 抽象类可以有具体的成员方法,而接口中只能存在抽象方法;

       

      • 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;

       

      • 接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;

       

      • 一个类只能继承一个抽象类,而一个类却可以实现多个接口。

       

      • 抽象类如果需要添加新的方法,可以直接在抽象类中添加具体的实现,子类可以不进行变更;而接口进行了变更,则所有实现这个接口的类都必须进行相应的改动(功能扩展)。经过比较可以发现,抽象类中支持的功能绝对要比接口更多,但是抽象类有单继承局限性。

      代码编写的习惯:

      • 在进行某些公共操作的时候一定要定义出接口;
      • 有了接口后需利用子类完善方法;
      • 如果是自己写的接口,绝对不要使用关键字new直接实例化接口子类,使用工厂类完成。

      四、总结

      1. 接口的基本使用;
      2. 接口作为标准用于解耦和以及不同层之间的连接桥梁;
      3. 工厂设计模式与代理设计模式的简单介绍;
      4. 接口与抽象类定义的不同。
      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://kangll.blog.csdn.net/article/details/98074040,作者:开着拖拉机回家,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:激活函数之ReLU/softplus介绍及C++实现

      下一篇:Java8-LocalDateTime

      相关文章

      2025-05-14 10:33:25

      超级好用的C++实用库之网络

      在网络相关的项目中,我们经常需要去获取和设置设备的IP地址、子网掩码、网关地址、MAC地址等信息。这些信息一般与操作系统相关,在Windows系统和Linux系统上调用的接口是不一样的。

      2025-05-14 10:33:25
      Linux , 参数 , 地址 , 接口 , 网卡 , 返回值
      2025-05-14 10:03:13

      arm架构下JAVA开发

      ARM(Advanced RISC Machine)是一种基于精简指令集计算(RISC)设计的处理器架构。它以高效、节能著称,因此广泛应用 于从智能手机到物联网设备的各个领域。

      2025-05-14 10:03:13
      Java , JVM , 嵌入式 , 架构 , 设备
      2025-05-14 10:02:58

      Java实现根据概率中奖率怎么算

      要实现根据概率计算中奖率的功能,可以使用 Java 编程语言编写一个简单的程序。

      2025-05-14 10:02:58
      Java , 概率 , 模拟 , 程序
      2025-05-14 09:51:21

      Java 代码本地设置Hadoop用户名密码

      在Hadoop环境中,通常使用Kerberos进行身份验证。但在一些开发或测试环境中,我们可能需要在本地代码中设置用户名和密码来模拟或进行简单的测试。

      2025-05-14 09:51:21
      Hadoop , Java , 代码 , 使用 , 用户名 , 认证
      2025-05-14 09:51:21

      java 判断map为null或者空

      java 判断map为null或者空

      2025-05-14 09:51:21
      Java , Map , null , 方法 , 是否 , 检查 , 示例
      2025-05-14 09:51:15

      JAVA 两个类同时实现同一个接口

      在Java中,两个类同时实现同一个接口是非常常见的。接口定义了一组方法,实现接口的类必须提供这些方法的具体实现。

      2025-05-14 09:51:15
      Lambda , 函数 , 实现 , 接口 , 方法 , 表达式
      2025-05-14 09:51:15

      java怎么对线程池做监控

      对Java线程池进行监控是确保系统性能和稳定性的重要部分。监控线程池可以帮助我们了解线程池的状态,如当前活跃线程数、任务队列长度、已完成任务数等。

      2025-05-14 09:51:15
      Java , 方法 , 监控 , 示例 , 线程 , 队列
      2025-05-13 09:53:23

      java动态获取实体类的字段

      在Java中,我们可以使用反射(Reflection)API来动态地获取实体类的字段。

      2025-05-13 09:53:23
      API , Java , 使用 , 字段 , 实体类 , 方法 , 获取
      2025-05-13 09:53:23

      Java静态变量在静态方法内部无法改变值

      在Java中,静态变量(也称为类变量)属于类本身,而不是类的任何特定实例。它们可以在没有创建类的实例的情况下访问和修改。如果我们发现在静态方法内部无法改变静态变量的值,这通常是因为我们的代码中有一些逻辑错误或误解。

      2025-05-13 09:53:23
      Java , 变量 , 实例 , 类名 , 访问 , 静态 , 静态方法
      2025-05-13 09:49:12

      Java学习(动态代理的思想详细分析与案例准备)(1)

      Java学习(动态代理的思想详细分析与案例准备)(1)

      2025-05-13 09:49:12
      java , 代理 , 代码 , 对象 , 接口 , 方法 , 需要
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5255264

      查看更多

      最新文章

      超级好用的C++实用库之网络

      2025-05-14 10:33:25

      arm架构下JAVA开发

      2025-05-14 10:03:13

      Java实现根据概率中奖率怎么算

      2025-05-14 10:02:58

      Java 代码本地设置Hadoop用户名密码

      2025-05-14 09:51:21

      java 判断map为null或者空

      2025-05-14 09:51:21

      java怎么对线程池做监控

      2025-05-14 09:51:15

      查看更多

      热门文章

      Java线程同步synchronized wait notifyAll

      2023-04-18 14:15:05

      JAVA__接口的作用

      2023-04-18 14:14:13

      Java/Android Annotation注解/注入(二)

      2023-04-13 09:37:00

      Android/Java判断字符串String是否为float浮点数或double类型

      2023-04-17 09:39:54

      Java小数点数字和百分号数字之间的转换

      2023-04-13 09:48:57

      Java的自带注解Annotation(一)

      2023-05-10 06:02:06

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      Java中的集合类

      接口 java 1614953826

      Java基础教程(五千字带你快速入门!)

      RxJava/RxAndroid:ConnectableObservable & delaySubscription

      JavaEE:过滤器

      Java命令行编译打包

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号