java静态方法

以下是为您整理出来关于【java静态方法】合集内容,如果觉得还不错,请帮忙转发推荐。

【java静态方法】技术教程文章

Java静态方法为什么不能访问非静态方法

非静态方法(不带static)可以访问静态方法(带static),但是反过来就不行,为什么呢?public class test{public void static main(String args[]){method(); //会出错,提示你讲method方法改成静态的method2(); //调用方法正确new Test2().method(); //正确}public void method(){System.out.println("HelloWorld");}public static void method2(){System.out.println("HelloWorld");} } public class Test2{public void method(...

java静态方法调用非静态方法【代码】

我们都知道,静态static方法中不能调用非静态non-static方法,准确地说是不能直接调用non-static方法。但是可以通过将一个对象的引用传入static方法中,再去调用该对象的non-static方法。其实这个事实的应用很经常,以至于我们不去重视:在主函数(static方法)中我们经常创建某个类的实例,再利用其饮用变量调用它的非静态方法。//StaticMethodTest.java //A ststic method cannot call a non-static method, but we can transfer a...

Java静态方法,静态变量,初始化顺序

1. 静态方法: 成员变量分为实例变量和静态变量。其中实例变量属于某一个具体的实例,必须在类实例化后才真正存在,不同的对象拥有不同的实例变量。而静态变量被该类所有的对象公有(相当于全局变量),不需要实例化就已经存在。方法也可分为实例方法和静态方法。其中,实例方法必须在类实例化之后通过对象来调用,而静态方法可以在类实例化之前就使用。与成员变量不同的是:无论哪种方法,在内存中只有一份——无论该类有多...

java静态方法,静态块,构造块,构造方法的加载顺序,及类名.静态变量的加载【代码】

public class Test {public static void main(String[] args) {System.out.println("A");new Test();new Test();}public Test() {System.out.println("B");}{System.out.println("C");}static {System.out.println("D");} } 输出 DACBCB 结论:加载顺序:静态块->构造块->构造方法 这里D在A前因为整个main方法是在这个类里的,要运行main方法,需要先加载这个类。故D在A前public class Test {public static void main(String[] arg...

java – 是静态方法线程安全的类实例【代码】

我有一个像下面这样的静态方法public static void foo(){final ClassA a = new ClassA();} 我在classA中有两个哈希映射. 那些哈希映射线程安全吗?解决方法:目前尚不清楚是否要使用多个线程访问对象a内的哈希映射,或者使用多个线程调用方法foo. 在第一种情况下,集合的线程安全性与外部上下文无关,即它是在静态上下文中创建的.所以不,如果您尝试从具有多个线程的对象a访问哈希映射,则会导致意外行为.您需要使用synchronized块来管理...

java – 静态方法无法访问类的实例成员【代码】

在Liang的第9版Java编程简介中,它指出“静态方法不能访问类的实例成员”(第312页).我明白为什么类的实例成员需要访问方法(可能是静态的),但为什么方法需要访问实例成员?对我来说,“访问”意味着“通过点操作符访问”.换一种说法:Class myClass = new Class();myClass.someStaticMethod();有道理,而:someNonStaticMethod.myClass要么someStaticMethod.myClass才不是.是否允许someNonStaticMethod.myClass语法?我不相信我见过这样...

java – 让静态方法返回私有类的设计决策背后是什么?例如Collections.synchronizedList()

我想扩展SynchronizedList类,但发现它是私有的. 为什么这样设计?解决方法:这是因为设计它的人不希望你扩展它. 只有设计人员知道这样做的确切原因,但请考虑Effective Java 2nd Ed Item 17中的建议:Design and document for inheritance or else prohibit it.如果您不必担心有人扩展它,它可以简化类的实现. Effective Java项目提供了您必须设计的各种问题的详细信息,以及缓解这些问题所需的步骤. 有人可能会争辩说,班级设计师没有把...

java – 静态方法有原因吗?【代码】

我似乎无法理解静态方法.我阅读了很多关于它的文章,并在教科书和Java文档中对它进行了研究.我知道你可以使用静态方法来访问静态变量.除了获取静态变量之外,除了类方法之外还有其他原因吗?如果还有其他原因我可以解释为什么?我也创建了这个帖子,因为我没有在SOF中找到任何关于此的内容. 这是一个示例代码:public class Bicycle {private int cadence;private int gear;private int speed;private int id;private static int numb...

Java静态方法的标准?

有人告诉我:If you are using Eclipse and don’t see any blue words (i.e. member variables) in your methods, then those methods should really be static methods, as long as the parameters (if there are any) are primitive types, or (in the case of object references) are immutable and/or thread-safe.在决定实例方法是否真的应该是静态方法时,Java开发人员应该考虑其他任何标准吗?解决方法:简单地说,如果它是纯...

Java静态方法参数【代码】

为什么以下代码返回100 100 1 1 1而不是100 1 1 1 1?public class Hotel { private int roomNr;public Hotel(int roomNr) {this.roomNr = roomNr; }public int getRoomNr() {return this.roomNr; }static Hotel doStuff(Hotel hotel) {hotel = new Hotel(1);return hotel; }public static void main(String args[]) {Hotel h1 = new Hotel(100);System.out.print(h1.getRoomNr() + " ");Hotel h2 = doStuff(h1);System.out.print(...