上文中我们已近说到过了,Java是一种面向对象的编程语言,对象是用类来创建的,就比如世界上有无数个父亲,但是他们都有一个共同的属性——男人。也就是说某个父亲这个对象属于男人这个类。类是Java必不可少的,类中有方法与属性。那么我们应该如何使用方法和属性呢?
public class Car {
public static int wheelSize;
public static void main(String[] args){
createWheel();
}
public static void createWheel(){
wheelSize = 25;
System.out.println(''车轮子的半径为'' + wheelSize + ''厘米'');
}
}
程序执行图
其中的wheelSize就是属性,createWheel()是方法。Java中需要记住以下关键点。
被static修饰的方法和属性是类的方法和属性。可以在不创建对象的前提下直接用类进行调用。
被static修饰的方法中不可以出现this关键字。因为this代表的是当前类的某个对象,而static修饰的方法是类的方法。在没有创建对象的方法中怎么可以调用对象的数据呢?
被static修饰的方法不可以调用非static属性和方法。理由同上。
一个Java文件夹下可以有多个类,但是只能有一个类为public类,并且此public类必须跟文件同名。
静态类(用static修饰的类)只能为内部类。
内部类如果不是静态的,不可以有静态方法。
private只能修饰内部类,不可以修饰外部类。即使不是public类,也必须被此包可见(不用任何关键字修饰)。
非静态内部类里面不能定义静态方法。
对于静态方法,可以使用对象调用,单不建议这么做。
类中被static修饰的方法和属性是该类所有对象所共有的,所以它只存在一个副本,一变则都变。而非static属性和方法是每个对象所特有的,相互之间并不影响。具体区别可以从以下程序中看出。
package com.lanyue.day01;
class Car {
public static int wheelSize;
public int speed;
public static void createWheel(int wheelSizeTemp){
wheelSize = wheelSizeTemp;
System.out.println(''车轮子的半径为'' + wheelSize + ''厘米'');
}
public void createSpeed(int speedTime){
this.speed = speedTime;
System.out.println(''当前车速为每小时'' + this.speed + ''千米'' );
}
}
public class Person{
public static void main(String[] args){
Car carOne = new Car();
Car carTwo = new Car();
carOne.createSpeed(25);
carTwo.createSpeed(30);
carOne.createWheel(50); //不推荐这种调用方法,这里只是为了试验出结果
carTwo.createWheel(100); //同上
System.out.println(carOne.wheelSize); //同上
System.out.println(carTwo.wheelSize); //同上
}
}
程序调试图