静态static
static概述
如果使用了static关键字,这样的内容就不是属于对象自己的,而是属于类的,只要是本类的对象都共享同一份数据.
这份数据保存在类中
static关键字用于成员变量
如果一个成员变量使用了static关键字,那么这个对象就不属于自己而是属于类的
static可以用来计数
代码示例
Student类
public class Student {
private String name;
private int age;
static String room;
//可以用来自动生成学号
private static int count;//计数器,可以使用这个静态变量来计算生成对象的个数
private int id;//学号
public Student() {
count++;
id = count;
}
public Student(String name, int age) {
this.name = name;
this.age = age;
count++;
id = count;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
主函数
public class Demo09 {
public static void main(String[] args) {
Student two = new Student("易烊千玺", 23);
two.room = "407实验室";//room为所有对象共享的
System.out.println("姓名:" + two.getName() + ",年龄:" + two.getAge() + ",教室:" + two.room + ",学号:" + two.getId());
Student one = new Student("蔡徐坤", 19);
System.out.println("姓名:" + one.getName() + ",年龄:" + one.getAge() + ",教室:" + one.room + ",学号:" + one.getId());
}
}
static关键字用于成员方法
静态方法概述
原本的成员方法需要先创建对象才能使用,对于静态方法直接通过类名称使用方法
推荐使用--类名称.静态方法
不推荐--对象名称.静态方法
代码示例
类
public class Myclass {
public static void methodStatic()
{
System.out.println("我是静态方法");
}
public void method()
{
System.out.println("我是成员方法");
}
}
主函数
public class Demo10 {
public static void main(String[] args) {
Myclass one=new Myclass();
one.method();
one.methodStatic();//不推荐写法
Myclass.methodStatic();//推荐写法
hello();
}
public static void hello()
{
System.out.println("你好");
}
}
注意事项
静态不能访问非静态
因为在内存中先有静态内容,然后有非静态内容
静态方法里面不能用this
代码截图
代码示例
public class Myclass {
private String name;
private static int age;
public static void methodStatic() {
System.out.println("我是静态方法");
// System.out.println(name);
//静态方法不能访问非静态变量
System.out.println(age);
//静态方法可以访问静态变量
// System.out.println(this);
// 静态方法不能使用this
}
public void method() {
System.out.println(name);
//成员方法可以访问非静态变量
System.out.println(age);
//成员可以访问静态变量
System.out.println("我是成员方法");
System.out.println(this);//成员方法可以使用this
}
}
标签:name,静态,System,static,println,public,out
From: https://www.cnblogs.com/harper886/p/17341078.html