1、static定义属性
一旦在属性定义上使用了static之后,只要有一个对象修改了属性的内容,那么所有对象的属性一起进行了修改,也就是说该属性就变成了公共属性。
static声明的属性将不会保存在堆内存中,而是保存在在全局数据区中。虽然每个对象都可以对该属性进行修改,但是一般都不会用这种修改方式,一般可以使用所有对象的公共的代表(类)进行访问,
所以说被static声明的属性是可以被 类名称.属性 直接调用的,而不需要先实例化对象再使用。{(做一个无关的笔记,因为我老是忘记这个)用无返回值构造的方法可以用 类名称.方法名称();调用,如果有返回值的方法必须要使用System.out.println(类名称.方法名称);来调用}
例:
class Book {
String title;
double price;
static String press="清华大学出版社";
public Book(String title, double price) {
this.title = title;
this.price = price;
}
public void getInfo(){
System.out.println( "书名:"+this.title+",价格:"+this.price+",出版社:"+press);
}
}
public class Test {
String title;
double price;
static String press="清华大学出版社";
public Book(String title, double price) {
this.title = title;
this.price = price;
}
public void getInfo(){
System.out.println( "书名:"+this.title+",价格:"+this.price+",出版社:"+press);
}
}
public class Test {
public static void main(String[] args) {
Book b1= new Book("Java面试宝典",49.9);
Book b2 = new Book("web前端开发",89.9);
Book.press="北京大学出版社";
//System.out.println(b1.getInfo()); 这个有返回值的调用方法
//System.out.println(b2.getInfo());
b1.getInfo();
b2.getInfo();
}
Book b1= new Book("Java面试宝典",49.9);
Book b2 = new Book("web前端开发",89.9);
Book.press="北京大学出版社";
//System.out.println(b1.getInfo()); 这个有返回值的调用方法
//System.out.println(b2.getInfo());
b1.getInfo();
b2.getInfo();
}
}
2、static定义方法
static定义的方法在没有实例化的情况下可以使用类名称直接调用。
static方法和非static方法之间的访问会限制:
(1).static方法不能够直接访问非static属性或者方法,只能调用static属性和方法。
(2).非static方法能够调用static的属性或方法,不受任何限制。
3、主方法
下面来观察一下主方法的组成:
·public:主方法是程序的开始,所以这个放法对任何操作都是可见的。
·static:证明此方法是由类名称调用的;
·void:主方法是一切的执行的开始点,即然是所以的开头,那么就不能回头。
·main:是一个系统规定好的方法名称,不能够修改;
·String args[]:指的程序运行的时候传递的参数;