静态类是不能被实例化的。调用静态类的成员(方法,变量,属性)的时候用
静
态类名
.
成员名
的方式来调用
非静态类中可以有静态方法,但是静态类中只能有静态方法,不能有非静态方法及其他实例成员
静态构造函数不可被直接调用,
当创建类实例或引用任何
静态成员
之前,静态构造函数被自动执行,并且只执行一次。即:静态运行时被加载一次。 非静态每次运行都被加载
非静态类需要你自己去实例化加载它,才能调用
调用静态类成员的时候,会首先调用静态的构造函数去初始化这个静态成员。
一个类里 同时定义了静态字段和非静态字段 ,你在调用这个类的过程中,最先执行到的总是最先初始化静态字段(注意这个过程你可能会看不到,除非你自己定义了静态构造函数)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 字段访问权限
class Users
public int age;
public static int age2;
public Users() //非静态构造函数
age = 100;
Console.Write(age);
static Users() //静态构造函数
age2 = 10;
Console.WriteLine(age2);
class Program
static void Main(string[] args) //这里是程序的入口,最先被执行到,然后往下开始执行
Users user = new Users(); //接着会执行到这一步(当执行到这一步的时候,因为Users类里有静态字段age2,所以需要最先初始化age2 ,所以这个时候程序会跳到 static Users(),等静态构造函数执行完毕后,才会跳到public Users() 来初始化非静态字段)所以这段程序输出的结果是10 ,100【注意先输出的是10,后输出的是100】
Console.ReadKey();
静态类是不能被实例化的。调用静态类的成员(方法,变量,属性)的时候用 静态类名.成员名 的方式来调用 静态构造函数不可被直接调用,当创建类实例或引用任何静态成员之前,静态构造函数被自动执行,并且只执行一次。即:静态运行时被加载一次。 非静态每次运行都被加载 非静态类需要你自己去实例化加载它,才能调用 调用静态类成员的时候,会首先调用静态的构造函数去初始化这个静态成
System.out.println(File.pathSeparator);// ;
System.out.println(File.separator);// \
早期Java不智能,还需要用这种适应平台的api去写分隔符
现在Java早已经成熟了 会自动根据平台转分隔符的
2、非静态成员需要实例化去调用
3、静态方法中,只可以访问静态成员。静态类中也只能有静态成员。
4、实例中既可以访问静态成员也可以访问非静态成员;
5、不能在静态类中声明实例成员;
6、可以在实例成员中声明静态成员;
7、静态类中的构造函数:只初始化一次,但是静态类的构造函数前面也要加static
结构与类的区别:
结构中也可以有字段、属性
建议33:避免在泛型类型中声明静态成员
在上一建议中,已经理解了应该将MyList<int>和MyList<string>视作两个完全不同的类型,所以,不应该将MyList<T>中的静态成员理解成MyList<int>和MyList<string>共有的成员。
class MyList
pu...
首先要明白无论调用成员变量还是方法,都需要主调(主语调用者),其格式为:主调.方法/成员变量
别看我们平时可以直接使用方法名/变量名,其实他们都有默认的前缀。如果是static修饰的,默认类名为前缀,没有static修饰的话,默认this为前缀。
记住一句话:谁调用这个方法,this就代表谁
接下来进入正题。标题的情况中,类...
在Java接口中,可以定义静态类。一个静态类是指被声明为 static 的嵌套类。与非静态类不同,静态类可以在没有实例对象的情况下直接使用。在接口中,静态类可以作为接口的一部分,从而提供一些相关工具类或者实用方法,方便用户调用。
静态类是通过 static 关键字和 class 关键字定义的,可以看做是内部工具类,用来提供一些工具方法,但是不能访问外部接口的非静态变量和方法。
以下是一个接口中定义的静态类的示例:
```java
public interface MyInterface {
static class Utils {
public static void doSomething(){
System.out.println("static method in static class");
在上面的例子中,静态类 Utils 包含一个静态方法 doSomething(),可以在被实现的类中直接调用,例如:
```java
public class MyClass implements MyInterface{
public void myMethod(){
MyInterface.Utils.doSomething();
需要注意的是,不可以创建接口的静态类的实例,因为它没有公共构造函数或者方法。静态类仅仅作为一种语法上的管理方式,用于结构化和组织代码。