static个人理解
static解:
主要用于内存管理,static关键字的方法不需要new对象就可以直接在同static内进行调用,在其他类中可直
接通过类名进行变量的访问。
static关键字属于类,不是类的实例。
成员分为两种:静态变量与实例变量。
static修饰后只会被分配一次内存,加载类的时候就会预先完成内存分配
静态变量可以被类的所有实例共享,静态变量可以增加实例之间的交互性
相对的 静态方法不能调用非静态的方法与变量,并且静态不能用this与super
静态变量适合全局变量的定义:比如一个boolean flag布尔变量可以多次使用,不用每次定义并且节省了内存
静态代码块:
static{}修饰的代码块
类似于方法,不可以放在方法体内
可以放在类的任何地方,类中可以存在多个
静态代码块只会初始化一次,并且在类内按次序进行,而非静态代码块会在new对象时都会触发
1、静态内部类,跟静态方法一样,只能访问静态成员变量和方法,不能访问非静态方法和属性。
2、普通内部类,可以访问任意外部类的成员变量和方法。
3、静态内部类,可以声明普通成员变量和方法,而普通内部类不能声明static成员变量和方法。
4、静态内部类,可以单独初始化。
子方法static去掉的报错(求平方数的静方法)的原因,例子
原因:得先new对象,不new对象不能直接调用
原代码
将静态方法修改后
主要用于内存管理,static关键字的方法不需要new对象就可以直接在同static内进行调用,在其他类中可直
接通过类名进行变量的访问。
static关键字属于类,不是类的实例。
成员分为两种:静态变量与实例变量。
static修饰后只会被分配一次内存,加载类的时候就会预先完成内存分配
静态变量可以被类的所有实例共享,静态变量可以增加实例之间的交互性
相对的 静态方法不能调用非静态的方法与变量,并且静态不能用this与super
静态变量适合全局变量的定义:比如一个boolean flag布尔变量可以多次使用,不用每次定义并且节省了内存
静态代码块:
static{}修饰的代码块
类似于方法,不可以放在方法体内
可以放在类的任何地方,类中可以存在多个
静态代码块只会初始化一次,并且在类内按次序进行,而非静态代码块会在new对象时都会触发
1、静态内部类,跟静态方法一样,只能访问静态成员变量和方法,不能访问非静态方法和属性。
2、普通内部类,可以访问任意外部类的成员变量和方法。
3、静态内部类,可以声明普通成员变量和方法,而普通内部类不能声明static成员变量和方法。
4、静态内部类,可以单独初始化。
子方法static去掉的报错(求平方数的静方法)的原因,例子
原因:得先new对象,不new对象不能直接调用
原代码
public class SquareInt { public static void main(String[] args) { int result; for (int x = 1; x <= 10; x++) { result = square(x); // Math库中也提供了求平方数的方法 // result=(int)Math.pow(x,2); System.out.println("The square of " + x + " is " + result + "\n"); } } // 自定义求平方数的静态方法 public static int square(int y) { return y * y; } }
将静态方法修改后
public class SquareInt { public static void main(String[] args) { SquareInt Sq=new SquareInt(); //先创建对象 int result; for (int x = 1; x <= 10; x++) { result = Sq.square(x); // Math库中也提供了求平方数的方法 // result=(int)Math.pow(x,2); System.out.println("The square of " + x + " is " + result + "\n"); } } // 自定义求平方数的静态方法 public int square(int y) { return y * y; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!