- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java中的static使用之静态方法
与静态变量一样,我们也可以使用static 修饰方法,称为静态方法或类方法。 其实之前我
们一直写的main方法就是静态方法。静态方法的使用如:
public class HelloWorld {
"使用走朮关键字声明静态方法
public static void printOl
System,w^printlnC'^迎魅:炭慕课!");
public static void main(String[] args) { 〃直接使用类名调用静态方法 HelloWorld./?w??();
〃也可以通过对象名调用「当然更推荐使用类名调用的方式 HelloWorld deimo=new HelloWorldQ;
demo4p/?/?f();
}
}
需^要工意:
1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。 如:
1iepublic class HelloWorld {
1
ie
String name ="愛幕课“;//非薛感芟苗nmm电
static St ring hobby = "imoac"; H 捕态变 S hobby
//在静悲方法调用菲締态雯量
public static void print() {子能応接弓冃惱总:翳
System, out. printin ( ?yaffil:w + name + ,T I");Sy st em. ou t * print In ( i" + hobby + T);
} “
s 可臥直撈调瞬瓷变屋
如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非 静态变量。如:
//在静态方迭中调用非静态变量
public static void print() {
//创建类的对彖
HelloWorld hello = new HelloWorld();
//通过对象来实现在帮态方法中调用日曙态变董
System qut ? ”款迎您:"+ hello. name + "I”);
System. out. printin (:+ hobby + “!");
}
、在普通成员方法中,则可以直接访问同类的非静态变量和静态变量 ,如下所示:
String name = ”爱慕课“;//非静态变量ume
static String hobby = "imooc"; // 春吉态变蜃 hobby
//普通成员方法可叹直接访问非静态变量和静态变量
public void show() {
System.out.printlnC^M:11 + name + ”! ”); System.out. println(r,^i?;r, + hobby + rr I M);
萇
3、静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。 如:
//昔通成员方法
public void show() {
System ?o print In ("welcome to imoooc'');
}
//辭态方法
public static void prin(
System ? out *println("^ 迎来到爱草课")j
}
public static void main(string[] args) {
//昔通或员方法必烦逋过对象釆调用
HalloWorld hello = new HelloWorld(); hello? show();
//可庆直接関用静蛊方医
print();
}
ava中的static使用之静态初始化块
Java中可以通过初始化块进行数据赋值。如:
public class HelloWorld {
String name; //定义一个成^变量
//诵过初始化块为成员变量赋值
{
name ="爱慕课";
}
}
在类的声明中,可以包含多个初始化块, 当创建类的实例时, 就会依次执行这些代码块。如
果使用static 修饰初始化块,就称为静态初始化块。
需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只 能给静态变量赋值,不能初始化普通的成员变量 。
我们来看一段代码:
public elas% Hsllok/orld {
int numl;// 丙砺交jtnuml
int num2;// -^-t. Jnum2
static int rryrnj;// 声咽汗态支世numm
public HelloWorldf) {// 海方总
nurwl = j
Sy s t em, pu t, pr i n 11 n (" ii n um 调值");
}
{//初曲优块
num2 - 74; System.out. print5("诵述I制抄沟戏时um2
文档评论(0)