类的创建

  1. package yuque.phil616.oop;
  2. public class OOP {
  3. public static void main(String[] args) {
  4. Human Lee = new Human();
  5. }
  6. }
  7. class Human {
  8. String name;
  9. int height;
  10. String getName(){
  11. return this.name;
  12. }
  13. int getHeight(){
  14. return this.height;
  15. }
  16. }

上述代码中,Human的类创建出一个对象实例为Lee,new关键字的意义在于将对象创建出来并储存在内存中。

类的使用

  1. Human Lee = new Human();
  2. Lee.height = 170;
  3. System.out.println("Lee's name is " + Lee.getHeight());

上述代码中,第一行生成了具体对象后,使用点.运算符获取到了类中的一个变量、即属性,并赋值为170;
在下面第三行中的加号后,使用了类中的方法。

初始化

类提供了一种在被创建时就赋初始值的方法,即为构造方法,在类的实例化对象被创建时,他的构造方法就被调用,不论程序员是否定义了构造方法,构造方法默认被调用。

构造方法

构造方法是一种特殊方法,他没有返回值,且函数名必须与类名一致。
例如下面的构造方法实例:

  1. class Human{
  2. Human(){ //Human类的构造方法
  3. }
  4. }

该构造方法没有任何内容也没有参数,即调用时不会做任何操作。

  1. class Human {
  2. String name;
  3. int height;
  4. Human(String myName,int myHeight){
  5. name = myName;
  6. height = myHeight;
  7. }
  8. }

而在这个类中,我们自行定义了一个有参数的构造方法,即有参构造。
当使用new进行创建时,我们就可以把参数传进去。

  1. Human Lee = new Human("Bruce Lee",180);

传入参数后,Lee这个对象的两个属性就有了初始值,即为创建时传入的两个参数。

this

this是Java中的关键字,用于区分参数名和属性名。例如下面的一个构造方法中,计算机无法分清谁是传入的参数,谁是类自己的属性。

  1. class Human {
  2. String name;
  3. int height;
  4. Human(String name,int height){
  5. name = name;
  6. height = height;
  7. }
  8. }

此时程序会报错,需要使用this来确认this后的变量一定是类内的属性而非参数

  1. class Human {
  2. String name;
  3. int height;
  4. Human(String name,int height){
  5. this.name = name;
  6. this.height = height;
  7. }
  8. }