static可以修饰:属性、方法、代码块、内部类
static注意点:1.在静态方法内,不能使用this关键字、super关键字
开发中,如何确定一个属性是否要声明为static?
>属性是可以被多个对象所共享的,不会随着对象的不同而不同
开发中,如何确定一个方法是否要声明为static的?
>操作静态属性的方法,通常设置为static
>工具类中的方法,习惯声明为static;比如:Math、Arrays、Collections
/**
* @ Author HuQi
* @ Date 2020/1/30 20:52
* @ Version 1.0
* ---------------------------
*/
public class CircleTest {
public static void main(String[] args) {
Circle c1 = new Circle();
//1001
System.out.println("c1的id是" +c1.getId());
Circle c2 = new Circle();
//1002
System.out.println("c2的id是" +c2.getId());
//2
System.out.println("圆的个数" + Circle.getTotal());
}
}
class Circle {
private double radius;
private int id;
public double getRadius() {
return radius;
}
public int getId() {
return id;
}
public static int getTotal() {
return total;
}
public static int getInit() {
return init;
}
public Circle(){
id = init++;
total++;
}
public Circle(double radius){
this();
this.radius = radius;
}
//记录创建圆的个数
private static int total;
//圆的编号
private static int init = 1001;
public double findArea() {
return 3.14 * radius * radius;
}
}