java课程博客作业关于static
static是 java 语言中的关键字,意思是“静态的”,它可以用来修饰变量、方法、代码块等,修饰的变量叫做静态变量,修饰的方法叫做静态方法,修饰的代码块叫做静态代码块。static的作用就是用于区分成员变量、方法、内部类、初始化块这四种成员到底属于类本身还是属于实例。静态变量是成员变量的一种,静态变量存储在方法区中,则它在类加载时就会进行初始化,所以静态变量访问的时候不需要创建实例,直接可以通过类名来访问。对于静态变量,对象级别的变量不需要static,类级别的变量需要static。静态变量可以使用引用去访问,但实际上在执行过程中,引用所指向的对象并没有参与,如果是空引用访问实例变量,程序一定会发生空指针异常,但是如果用空引用访问静态变量,程序并没有发生空指针异常,所以通过引用访问静态变量实际上还是直接通过类去访问的。static可以用来修饰类的成员方法、类的成员变量,另外也可以编写static代码块来优化程序性能
static方法也成为静态方法,由于静态方法不依赖于任何对象就可以直接访问,因此对于静态方法来说,是没有this的,因为不依附于任何对象,既然都没有对象,就谈不上this了,并且由于此特性,在静态方法中不能访问类的非静态成员变量和非静态方法,因为非静态成员变量和非静态方法都必须依赖于具体的对象才能被调用。
对于静态变量,
对象级别的变量不需要static
类级别的变量需要static
对象级别:一个对象对应一份数据,各个对象都可以不同
类级别: 所有对象对应一份数据,各个对象都一样
所有静态相关的,直接使用类名去访问
静态方法只能访问静态的成员,不可以直接访问实例成员。
实例方法可以访问静态成员,也可以访问实例成员。
静态方法中是不可以出现this关键字的。
package HJssss;
public
class
zhuce {
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;
}
}
这个代码如果去掉子方法里面的static就会报错,
非静态方法可以调用静态方法及静态变量,静态方法不能调用非静态方法及变量。
被static修饰的可以直接通过Class.的方法调用,而非静态方法必须有对象才能调用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理