static关键字
1.静态属性(类属性)。与实例属性(对象属性)
静态属性,只有一份,可以通过 类名.属性名/对象.属性名 来赋值和访问
实例属性,每个对象都有一份,只能通过 对象.属性名 来赋值和访问
2.静态方法与实例方法(对象方法)
静态方法中只能调用静态方法,不能访问实例属性
实例方法中可以调用静态方法和实例方法,也可以访问静态属性和实例属性
3.补全method方法
System.out.println(method(method(100.2,1.0),100));
静态属性
创建一个 Cat.java 类文件 内容如下:
public class Cat {
// 下面的三个属性都叫对象属性或实例属性,使用的时候需要创建对象,new Cat() 才能进行赋值
// String name = null;
// int age = 0;
// String color = null;
String name = null;
int age = 0;
static String color = null;
}
测试文件中内容如下
public class Hello {
public static void main(String[] args) {
Cat cat1 = new Cat();
cat1.name = "卢本伟";
Cat cat2 = new Cat();
cat2.name = "哈利波特";
System.out.println(cat1.name); // 卢本伟
System.out.println(cat2.name); // 哈利波特
Cat.color = "白色";
System.out.println(Cat.color); // 白色
cat1.color = "黑色";
System.out.println(cat2.color); // 黑色
// 由此可见:类属性会跟着类走的,是独有一份,不管通过哪一个对象对它进行修改那么会影响所有的对象
}
}
静态方法
创建一个 Cat.java 类文件 内容如下:
public class Cat {
// 下面的三个属性都叫对象属性或实例属性,使用的时候需要创建对象,new Cat() 才能进行赋值
// String name = null;
// int age = 0;
// String color = null;
String name = null;
int age = 0;
static String color = null;
void jiao() {
System.out.println("喵~");
}
static void jiao_static() {
System.out.println("喵~static");
}
}
测试文件中内容
public class Hello {
public static void main(String[] args) {
Cat cat1 = new Cat();
cat1.name = "卢本伟";
Cat cat2 = new Cat();
cat2.name = "哈利波特";
System.out.println(cat1.name); // 卢本伟
System.out.println(cat2.name); // 哈利波特
Cat.color = "白色";
System.out.println(Cat.color); // 白色
cat1.color = "黑色";
System.out.println(cat2.color); // 黑色
// 由此可见:类属性会跟着类走的,是独有一份,不管通过哪一个对象对它进行修改那么会影响所有的对象
cat1.jiao(); // 喵~ 对象方法只能通过对象去使用
cat1.jiao_static(); // 喵~static
Cat.jiao_static(); // 喵~static
}
}
练习
System.out.println(method(method(100.2,1.0),100));
public class Hello {
public static void main(String[] args) {
System.out.println(method(method(100.2, 1.0), 100));
}
static double method(double a, double b) {
return a + b;
}
}