static修饰的方法(既然说 static修饰的方法不可以对对象施加操作,为什么,静态的方法又可以通过对象来调用呢)

2025-03-12 21:20:02 0

static修饰的方法(既然说 static修饰的方法不可以对对象施加操作,为什么,静态的方法又可以通过对象来调用呢)

本文目录

既然说 static修饰的方法不可以对对象施加操作,为什么,静态的方法又可以通过对象来调用呢

用static修饰的方法(静态方法,也称类方法)在你运行你的代码的时候就已经生成了,而在类中定义的一般方法,需要new 一个对象才能产生。new出来的一个对象,可以对已经存在的static方法进行调用。而static方法不能对对象施加操作,是因为程序不能确定你的对象是不是已经new出来了,这是一种保护机制。试想一下,你要跟一个人打架,那个跟你打架的人也要存在呀!不存在那个人,你跟他打架这不是一件违法逻辑的事情么?关于static方法,它其实是类的方法,它的存在不需要new一个对象而产生,所以可以直接用类调用这个方法。当然,这个类实例的对象也可以对其进行调用

static 修饰的方法可以复写吗

首先,static 修饰的方法可以去复写,但不会覆盖父类的方法。重写:只有继承了父类的,才可以。 它具有以下特点:1.参数列表必须与被重写的方法参数列表一致。2.返回类型必须与方法中的返回类型一致。3.访问级别的 限制不可以比父类中的强。(可以比他弱)重载: 在同一一个类中,参数与返回的只不同,方法名相同。静态的: 由于静态的在内存空间只有一份,所有不可以被覆盖.子类定义和父类的静态,其实是在子类中隐藏父类的静态方法..子类隐藏父类的静态方法和子类覆盖父类实例方法还是有区别的.区别在:运行时..JAVA 虚拟机把静态方法和所属的类绑定,而把实例方法和所属的实例绑定...举个例子让你更明白;======class Father{void method(){System.out.println(“method of father“);}static void staticMethod(){System.out.println(“static method of father“);}}public class Son extends Father{void method(){System.out.println(“method of son“);}static void staticMethod(){System.out.println(“static method of son“);}public static void main(String args){Father son1 = new Son();//声明为Father类,son1静态方法和Father类绑定son1.method();son1.staticMethod();Son son2 = new Son();son2.method();son2.staticMethod();}}============method of sonstatic method of fathermethod of sonstatic method of son

java中什么时候应该用static修饰方法有什么好处或者坏处

当一个方法或者变量需要初始化加载,或者是经常被调用的时候可以加上static。用static修饰的方法可以用类名直接调用,不用的一定要先实例化一个对象然后才可以调用比如 person这个类里面有一个方法public static add(){}那么可以直接用person类调用 person.add();当然也可以用下面的方法先出一个对象在调用也是可以如果这个方法前面没有static 比如 public add(){}那么先要person p=new person();然后用p.add();类加载器在加载这个类的时候就已经实例化了这个类。坏处:初始化加载,比较占内存,所以不经常用的方法,不建议加此关键字。

java中,什么时候用static修饰method

  • 当一个方法或者变量需要初始化加载,或者是经常被调用的时候可以加上static。

  • 用static修饰的方法可以用类名直接调用,不用的一定要先实例化一个对象然后才可以调用

  • 比如 person这个类里面有一个方法public static add(){}

  • 那么可以直接用person类调用 person.add();当然也可以用下面的方法先出一个对象在调用也是可以

  • 如果这个方法前面没有static 比如 public add(){}

  • 那么先要person p=new person();

  • 然后用p.add();

  • 类加载器在加载这个类的时候就已经实例化了这个类。

java中static怎么用

static 属于全局,也就是类的属性 和方法,换句话说 一个类,不管有多少个实例,却只有一个全局变量class B {static int a=0;}B b1=new B();..................;B bn=new B();b1~bn 都是类B的实例,每个实例都共享 变量a,a是全局变量,属于类B的属性,每个实例都能引用变量a,加入执行b1.a=1;后 那么b2.a,b3.a,b4.a......bn.a 都等于1了,static 方法也是类似的需要注意的是 静态属性和方法属于类方法,加载类后,就已经存在静态属性和方法,实例是需要用new构造出来后 才会有引用根据先后顺序,就有以下两条规则1、非静态的方法可以调用静态的或者非静态的属性和方法;2、静态的方法不可以调用非静态的属性和方法,因为非静态的还不一定存在,只能先构造出来后,再通过实例引用例如 在main方法中 可以直接调用static 的方法,调用非static方法 需要先构造出类的实例,通过实例才能调用方法

java 中static用法

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法中使用(当然也可以在非静态成员方法中使用--废话),但是不能在其他类中通过类名来直接引用,这一点很重要。实际上你需要搞明白,private是访问权限限定,static表示不要实例化就可以使用,这样就容易理解多了。static前面加上其它访问权限关键字的效果也以此类推。

java中什么时候该用static修饰方法有什么好处或者坏处

有时你希望定义一个类成员,使它的使用完全独立于该类的任何对象。通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。static 成员的最常见的例子是main( ) 。因为在程序开始执行时必须调用main() ,所以它被声明为static。声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。声明为static的方法有以下几条限制:· 它们仅能调用其他的static 方法。 · 它们只能访问static数据。 · 它们不能以任何方式引用this 或super(关键字super 与继承有关,在下一章中描述)。 如果你需要通过计算来初始化你的static变量,你可以声明一个static块,Static 块仅在该类被加载时执行一次。下面的例子显示的类有一个static方法,一些static变量,以及一个static 初始化块:// Demonstrate static variables,methods,and blocks.

class UseStatic {    static int a = 3;     static int b;         static void meth(int x) {         System.out.println(“x = “ + x);        System.out.println(“a = “ + a);        System.out.println(“b = “ + b);    }    static {         System.out.println(“Static block initialized.“);        b = a * 4;         }     public static void main(String args) {         meth(42);    }}

一旦UseStatic 类被装载,所有的static语句被运行。首先,a被设置为3,接着static 块执行(打印一条消息),最后,b被初始化为a*4 或12。然后调用main(),main() 调用meth() ,把值42传递给x。3个println ( ) 语句引用两个static变量a和b,以及局部变量x 。注意:在一个static 方法中引用任何实例变量都是非法的。下面是该程序的输出:Static block initialized. x = 42 a = 3 b = 12 在定义它们的类的外面,static 方法和变量能独立于任何对象而被使用。这样,你只要在类的名字后面加点号运算符即可。例如,如果你希望从类外面调用一个static方法,你可以使用下面通用的格式:classname.method( ) 这里,classname 是类的名字,在该类中定义static方法。可以看到,这种格式与通过对象引用变量调用非static方法的格式类似。一个static变量可以以同样的格式来访问——类名加点号运算符。这就是Java 如何实现全局功能和全局变量的一个控制版本。下面是一个例子。在main() 中,static方法callme() 和static 变量b在它们的类之外被访问。

class StaticDemo {    static int a = 42;     static int b = 99;    static void callme() {             System.out.println(“a = “ + a);    }} class StaticByName {    public static void main(String args) {         StaticDemo.callme();        System.out.println(“b = “ + StaticDemo.b);        }}

下面是该程序的输出:a = 42 b = 99

static修饰的方法为什么不能被重写

静态的方法可以被继承,但是不能重写。如果父类中有一个静态的方法,子类也有一个与其方法名,参数类型,参数个数都一样的方法,并且也有static关键字修饰,那么该子类的方法会把原来继承过来的父类的方法隐藏,而不是重写。通俗的讲就是父类的方法和子类的方法是两个没有关系的方法,具体调用哪一个方法是看是哪个对象的引用;这种父子类方法也不在存在多态的性质。java不推荐用对象调用static方法,这会使人混淆,请大家注意。

static可以修饰方法的实参形参吗

在java中只能用static注释类的属性(字段)或方法,使属性成为静态属性、方法成为静态方法,不能修饰方法的形参。但如果调用方法时,传递的实参刚好是类的静态属性,那就可以说可以用static修饰方法的实参。总之,static不能修饰局部变量,不论这个局部变量是实参还是形参,只能修饰类的属性。

static修饰的方法(既然说 static修饰的方法不可以对对象施加操作,为什么,静态的方法又可以通过对象来调用呢)

本文编辑:admin

更多文章:


js方法与函数的区别(如何理解 JavaScript 中方法和函数的区别)

js方法与函数的区别(如何理解 JavaScript 中方法和函数的区别)

本文目录如何理解 JavaScript 中方法和函数的区别JavaScript中函数对象与函数有什么区别javascript函数、事件、对象、方法的通俗解释和他们的作用JavaScript中,类、对象、事件、方法、函数的联系与区别如何理解

2025年2月28日 07:40

vs2005是什么软件(Visual stdio 2005与SQL有什么联系吗)

vs2005是什么软件(Visual stdio 2005与SQL有什么联系吗)

本文目录Visual stdio 2005与SQL有什么联系吗vs2005和VC6.0有什么区别VS2005是什么软件vs 2005 是什么编程软件VS是什么Visual Studio 2005是什么Visual stdio 2005与SQ

2025年3月22日 13:00

datedif计算年龄(Excel中怎样根据出生年月计算年龄)

datedif计算年龄(Excel中怎样根据出生年月计算年龄)

本文目录Excel中怎样根据出生年月计算年龄Excel中如何设定一个日子作为截止日期从而来计算年龄的Excel中怎样根据出生年月计算年龄下面通过三种函数计算年龄一、INT函数用今天的日期减去出生日期,再除以365,到大致的年龄。再利用INT

2025年3月6日 03:30

taller怎么读语音(taller用英语怎么读)

taller怎么读语音(taller用英语怎么读)

本文目录taller用英语怎么读英语tαll高的怎么读Tall怎么读tall英语怎么读音taller和smaller中的all发音一样吗tall怎么读taller,stronger怎么读taller 怎么读taller用英语怎么读talle

2025年3月6日 05:00

phonegap手机版下载(Phonegap怎么用来做安卓APP)

phonegap手机版下载(Phonegap怎么用来做安卓APP)

本文目录Phonegap怎么用来做安卓APPphonegap html5 稳定吗PhoneGap应用开发对策:如何通过苹果审核如何利用PhoneGap制作地图APPphonegap 能将网站打包为APP吗phonegap和android s

2025年2月16日 04:00

translation可数吗(英汉词典里面名词翻译的后面有[C][U]的话到底是说可数还是不可数)

translation可数吗(英汉词典里面名词翻译的后面有[C][U]的话到底是说可数还是不可数)

本文目录英汉词典里面名词翻译的后面有[C][U]的话到底是说可数还是不可数单复数问题为什么the use of translation apps is 用is而翻译:“它是可数名词吗不,它不是它是不可数名词”第五题,为什么用原型,不用复数不

2025年4月5日 06:10

belate(be late的用法)

belate(be late的用法)

本文目录be late的用法belate的音标怎么写belateforschool的中文是什么意思be late的三种用法belate可以怎么造句be late的用法根据句意判断句子里说的时间是过去还是将来还是现在,根据不同的句意将Be动词

2025年2月11日 07:40

vboxmanage命令(打开cmd窗口,进入virtualbox目录,执行: C:\Program Files\Oracle\VirtualBox>VBoxManage setextradata)

vboxmanage命令(打开cmd窗口,进入virtualbox目录,执行: C:\Program Files\Oracle\VirtualBox>VBoxManage setextradata)

本文目录打开cmd窗口,进入virtualbox目录,执行: C:\Program Files\Oracle\VirtualBox>VBoxManage setextradatavboxmanage命令不能在CMD下运行,总是提示不是内部或

2025年3月13日 19:30

windowsphone下载(windows phone手机现在还能下载软件吗,怎么下载)

windowsphone下载(windows phone手机现在还能下载软件吗,怎么下载)

本文目录windows phone手机现在还能下载软件吗,怎么下载怎样在电脑中给windows phone 8下载软件windows phone8手机软件可以在哪里下载windows phone系统如何下载客户端如何在windowsphon

2025年3月13日 21:30

java生成随机数的方法(请问java中如何生成1000~10000之间的随机数)

java生成随机数的方法(请问java中如何生成1000~10000之间的随机数)

本文目录请问java中如何生成1000~10000之间的随机数介绍java 产生随机数的两种方式java怎样产生不同随机数请问java中如何生成1000~10000之间的随机数要生成在随机数为例,首先生成0-10000的随机数,然后对(10

2025年3月7日 11:40

如何来配置iis服务器加强安全?证书与iis结合实现web站点的安全性的核心步骤是什么

如何来配置iis服务器加强安全?证书与iis结合实现web站点的安全性的核心步骤是什么

本文目录如何来配置iis服务器加强安全证书与iis结合实现web站点的安全性的核心步骤是什么如何来配置iis服务器加强安全随着校园网络建设和应用的逐步深入,越来越多的学校建立了自己的Web服务器。IIS(Internet Informati

2025年3月25日 23:50

硬盘如何初始化?磁盘初始化是什么意思

硬盘如何初始化?磁盘初始化是什么意思

本文目录硬盘如何初始化磁盘初始化是什么意思用过的硬盘怎么初始化固态硬盘初始化磁盘硬盘怎么初始化win10新装硬盘初始化windows10怎么恢复出厂设置并初始化所有硬盘硬盘如何初始化硬盘是计算机的存储设备,我们可以将大量的数据放入其中保存起

2025年2月10日 05:10

免费服务器地址(哪里有免费的服务器可以领)

免费服务器地址(哪里有免费的服务器可以领)

本文目录哪里有免费的服务器可以领干货教程 | 如何把服务器免费接入IPv6哪里有免费的服务器可以领去小鸟云呀~他们有拼团0元的活动~以下是活动规则,你可以参考下:1、根据你所需的服务器配置,选择拼团购买(1H1G2M、2H2G5M、4H4G

2025年3月12日 20:50

linuxecho(Linux里面echo $UID命令后等于0作用是什么)

linuxecho(Linux里面echo $UID命令后等于0作用是什么)

本文目录Linux里面echo $UID命令后等于0作用是什么linux echo 什么意思linux echo命令linux echo是什么意思linux echo用法Linux里面echo $UID命令后等于0作用是什么题主你好,先说结

2025年2月21日 16:50

win10激活工具永久激活(win10家庭版系统怎么永久激活呢)

win10激活工具永久激活(win10家庭版系统怎么永久激活呢)

本文目录win10家庭版系统怎么永久激活呢怎么看win10是不是永久激活怎么把win10激活变为永久激活如何将批激活的win10变成永久激活有哪些激活win10的工具win10激活工具等是不是单机永久的Win10正式版永久激活工具怎么用wi

2025年3月25日 17:00

everybody knows i love you(everybody know i love you这首歌的歌词)

everybody knows i love you(everybody know i love you这首歌的歌词)

本文目录everybody know i love you这首歌的歌词谁有everybody knows i love you这首歌、跪求,不要现场版的谁有Everybody Knows I Love You中英对照歌词every body

2025年3月26日 07:50

auntie和aunt的区别(关于几个表示“阿姨”的英文单词 aunt aunty auntie 三个词有什么区别)

auntie和aunt的区别(关于几个表示“阿姨”的英文单词 aunt aunty auntie 三个词有什么区别)

本文目录关于几个表示“阿姨”的英文单词 aunt aunty auntie 三个词有什么区别aunt是什么意思英语aunt怎么念关于几个表示“阿姨”的英文单词 aunt aunty auntie 三个词有什么区别auntie=aunty是a

2025年3月5日 03:10

喝牛奶时经常看到“巴氏杀菌”,那么这到底是什么,求科普?巴氏灭菌法对蜂蜜有用吗

喝牛奶时经常看到“巴氏杀菌”,那么这到底是什么,求科普?巴氏灭菌法对蜂蜜有用吗

本文目录喝牛奶时经常看到“巴氏杀菌”,那么这到底是什么,求科普巴氏灭菌法对蜂蜜有用吗喝牛奶时经常看到“巴氏杀菌”,那么这到底是什么,求科普″巴氏"是指巴斯德发明的,巴氏杀菌法是一种低温杀菌法,是一种利用较低的温度既可杀死病菌又能保持物品中营

2025年2月21日 20:30

超链接去掉下划线(wpsoffice 超链接下划线怎么去掉)

超链接去掉下划线(wpsoffice 超链接下划线怎么去掉)

本文目录wpsoffice 超链接下划线怎么去掉wps ppt超链接怎么取消下划线html超链接更改颜色和去掉下划线WPS超链接去掉下划线做网页时,如何去除超级链接的下划线(frontpage)ppt超链接去掉下划线在HTML中怎么去掉超链

2025年2月19日 21:50

什么是数据库连接池(数据库连接池)

什么是数据库连接池(数据库连接池)

本文目录数据库连接池什么是mysql连接池,它的主要功能是什么数据库连接池在实际应用开发中,特别是在WEB应用系统中,如果JSP、Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接、打开数据

2025年2月24日 22:10

近期文章

本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:18
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:6
标签列表

热门搜索