JAVA中关于关键字static的一些用法 (java中关键字有哪些)
本文目录导航:
JAVA中关于关键字static的一些用法?
在Java编程中,经常使用关键字static润色的方法和变量被称为静态方法和静态变量。
这些静态元素属于类自身,而非类的实例,因此在内存中它们会在类加载时就曾经调配好空间。
静态变量和静态方法不依赖于类的实例,可以直接经过类名来访问。
静态方法的一个关键特点是:它们不能直接访问非静态的变量和方法,由于非静态元素是与类的实例相关的。
假设须要在静态方法中访问非静态变量或方法,可以经过类名或许类的实例来直接访问。
例如,假设你有一个名为MyClass的类,其中蕴含一个非静态变量x和一个非静态方法myMethod(),那么你不能直接在静态方法中调用myMethod(),除非经过实例化类的对象或许经常使用类名加点的方法名来调用。
静态方法的另一个清楚特点是,它可以被类的任何实例共享。
也就是说,无论你创立多少个该类的对象,共享的静态方法只会有一份拷贝。
比如,思考上方的代码段:public class MyClass {static int staticVar = 0;int nonStaticVar = 0;public static void staticMethod() {staticVar++;}public void nonStaticMethod() {nonStaticVar++;}}在这里,staticVar是静态变量,可以被一切MyClass的实例共享,而nonStaticVar是实例变量,每个实例都有自己的正本。
雷同,静态方法staticMethod()可以在不创立MyClass实例的状况下直接调用,而nonStaticMethod()则须要经过类的实例来调用。
经过这种形式,静态方法和变量提供了一种高效的形式来共享数据和口头操作,特意是在不须要思考对象形态的状况下。
这使得它们在解决单例形式、工厂形式和一些全局性操作时十分有用。
Java关键字:final,static,this,super
final 关键字:final 的经常使用场景包括把方法锁定以防止承袭类修正其含意,以及在早期 Java 成功中用于提高效率,将 final 方法转为内嵌调用。
但是,现代版本的 Java 已不再须要经过经常使用 final 方法启动此类提升。
static 关键字:static 有多种用途,如示意类成员而非实例成员,用于示意类方法或静态初始化块,或在没有实例化对象时访问类属性。
this 关键字:this 是一个指向以后对象的援用,它代表了对象自身,用于在方法外部援用实例变量或调用结构函数。
class Person { private int age = 10; public Person(){ (初始化年龄:+age); } public int getAge(int age){ = age; return ; } } public class TestDemo { public static void main(String[] args) { Person assassin = new Person(); (assassins age is + assassin (12)); } }运转结果:展现了 this 的经常使用,它在 getAge 方法中援用了 Person 类的成员变量 age。
class Country { String name; void value() { name = China; } } class City extends Country { String name; void value() { name = Shanghai; (); // 调用父类的方法 (name); (); } public static void main(String[] args) { City c=new City(); (); } }运转结果:展示了 super 的经常使用,它调用了父类 Country 中的 value 方法和 name 变量。
类结构函数:super(参数) 和 this(参数) 区分用于调用父类的结构函数和以后类的另一种结构函数。
经常使用 this 和 super 的留意事项:this 和 super 代表对象,而 static 成员属于类,不属于单个对象。
因此,在类方法中不能经常使用 this 或 super 访问静态成员。
java 中static用法
在Java编程言语中,static关键字用于示意“全局”或“静态”的概念,它可以润色成员变量和成员方法,也可以构成静态static代码块。
须要留意的是,Java并没有全局变量的概念,而是经过static润色符来成功类级别的变量和方法。
被static润色的成员变量和成员方法是独立于该类的任何对象的。
这象征着它们不依赖于类的特定实例,并且被类的一实际例共享。
只需该类被加载,Java虚构机就能在运转时数据区的方法区内找到它们。
因此,静态对象可以在其任何对象创立之前访问,无需援用任何对象。
当经常使用public润色的静态成员变量和成员方法时,它们的实质是全局变量和全局方法。
当申明它们时,类的对象不会生成静态变量的正本,而是由类的一实际例共享同一个静态变量。
这也象征着,即使没有创立类的实例,也可以直接经过类名访问这些静态成员变量和方法。
静态成员变量前面可以加上private润色符,这示意该变量只能在类的静态代码块中、其余静态成员方法中或非静态成员方法中访问。
但是,它不能经过类名直接援用在其余类中。
这是一项关键的规则,由于private是访问权限的限定符,而static则示意无需实例化即可经常使用。
了解这一点有助于更好地把握这两者的配置。
静态成员变量的访问权限润色符(如private、public等)之间存在相互相关。
例如,假设静态成员变量前面加上private润色符,那么它可以在类的静态代码块和静态成员方法中经常使用,当然也可以在非静态成员方法中经常使用。
但是,它不能在其余类中经过类名直接援用。
这实践上象征着,private限度了变量的可见范畴,而static则示意无需实例化即可访问。
因此,了解static润色符与访问权限润色符之间的相互作用关于编写高效和明晰的Java代码至关关键。
把握这些概念有助于更好地利用Java的个性,提高程序的可保养性和可裁减性。