Static关键字

static静态属性的声明
代码演示:

package demo;

class People
{
private String name;
private int age;
private String course;

public People()
{

}
public People(String name,int age,String course)
{
this();
this.name = name;
this.age = age;
this.course = course;
}
void talk()
{
System.out.println(“my name is “+name+”,i’m “+age+” years old, and i’m study “+course+” now”);
}
}
public class StaticDemo {
public static void main(String[] args)
{
People p1 = new People(“dodo”,21,”java”);
People p2 = new People(“jiahui”,20,”java”);
People p3 = new People(“haha”,21,”java”);
p1.talk();
p2.talk();
p3.talk();
}
}
3个学生在学习java这门课程,考虑一个问题,当我们上完了java课程了,想学习一下linux,我们是不是需要将这三个人的course属性都修改一遍?如果我们的班级有50人了呢?修改50遍的工作量就很大了。这显然需要工作量就很大了。
因此,我们使用static关键字来修改属性,这样用static修饰后的属性就是公共属性了,它是属于类的属性。

代码演示:;

class People
{
private String name;
private int age;
static String course;

public People()
{

}
public People(String name,int age,String course)
{
this();
this.name = name;
this.age = age;
this.course = course;
}
void talk()
{
System.out.println(“my name is “+name+”,i’m “+age+” years old, and i’m study “+course+” now”);
}
}
public class StaticDemo {
public static void main(String[] args)
{
People p1 = new People(“dove”,21,”java”);
People p2 = new People(“huihui”,20,”java”);
People p3 = new People(“haha”,21,”java”);
p1.talk();
p2.talk();
p3.talk();
//我们修改课程信息,等价于 p1.setCourse(“html”)
p1.setCourse(“html”);
System.out.println(“更换完课程信息后:”);
p1.talk();
p2.talk();
p3.talk();
}
}
修改其中一个对象的course属性,其实就是修改了所有人的course属性。

static静态方法的声明
static既可以修饰属性,同样也可以修饰方法,使用static修饰的方法称为“类方法”,使用static修饰的方法除了可以用对象去调用,还可以使用类名调用。上面的例子,我们是直接对属性值进行修改的,在java开发过程中,如果对属性值能够进行修改,是不安全的,我们接下来将course属性私有化,提供一个静态方法来修改课程信息。并使用类名调用

class People
{
private String name;
private int age;
//静态属性私有化
private static String course;

public People()
{
}
public People(String name,int age,String course)
{
this();
this.name = name;
this.age = age;
this.course = course;
}
void talk()
{
System.out.println(“my name is “+name+”,i’m “+age+” years old, and i’m study “+course+” now”);
}
//声明一个静态方法用来修改课程信息
public static void setCourse(String str){
course = str;
}
}
public class StaticDemo {
public static void main(String[] args)
{
People p1 = new People(“dove”,21,”java”);
People p2 = new People(“huihui”,20,”java”);
People p3 = new People(“haha”,21,”java”);
p1.talk();
p2.talk();
p3.talk();
//我们修改课程信息,等价于 p1.setCourse(“html”)
People.setCourse(“html”);
System.out.println(“更换完课程信息后:”);
p1.talk();
p2.talk();
p3.talk();
}
}

static静态代码块
代码演示:

package demo;

class Person{
public Person(){
System.out.println(“执行Person构造方法”);
}
static{
System.out.println(“执行Person类的static方法”);
}
}

public class StaticDemo{
static{
System.out.println(“执行StaticDemo类的static方法”);
}
public static void main(String[] args) {
System.out.println(“执行main方法”);
Person p1 = new Person();
Person p2 = new Person();
}
}

代码讲解:

1.一个类可以使用不包含在任何方法体类的静态代码块

2.当类被加载的时候,static静态代码块会优先执行,且只执行一次

3.静态代码块,通常用来进行类属性(static修饰的属性)赋值

在同一个类下,使用static关键字修饰方法
有时候我们需要在一个类下包含main()方法,而此时我们还想在同一个类下,执行某些代码逻辑,完成一些功能,这时候我们就需要对方法进行static修饰,不然main()方法没法调用

代码演示:

package demo;

public class StaticDemo{
public static void main(String[] args) {
int a = 15;
int b = 16;
System.out.println(sum(a, b));
}
public static int sum(int a,int b){
return a+b;
}
}

代码讲解:使用static修饰方法后,在main()方法里,我们就可以直接使用方法名即可完成调用。

static关键字,修饰的属性和方法,我们都可以理解为修饰后的属性和方法,不再属于单个对象,它是属于整个类的。静态代码块在类加载的时候会优先执行,且只执行一次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值