Java对象和类

java 作为一种面向对象语言。支持以下基本概念:多态、继承、封装、抽象、类、对象、实例、方法、重载

Java中的类

public class Dog {
  String breed;
  int age;
  String color;
  void barking(){}
  void hungry(){}
  void sleeping(){}
}

**局部变量:**在方法,构造方法或者语句块中定义的变量被称为局部变量。变量生命和初始化都是在方法中,方法结束后,变量就会自动销毁 **成员变量:**成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。 **类变量:**类变量也声明在类中,方法体之外,但必须声明为static类型

构造方法

每个类都有构造方法。如果没有显示地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。在创建一个对象的时候,至少要调用一个构造方法,构造方法的名称必须与类同名,一个类可以有多个构造方法。

public class Puppy {
  public Puppy(){}
  public Puppy(String name){
    // 这个构造器仅有一个参数 name
  } 
}

创建对象

对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:

  • 声明: 声明一个对象,包括对象名称和对象类型
  • 实例化:使用关键字new来创建一个对象
  • 初始化:使用new创建对象时,会调用构造方法初始化对象。
// 例:
public class Puppy{
  public Puppy(String name){
   // 这个构造器仅有一个参数:name
    System.out.println("zachary:" + name)
  }
  public static void main(String[] args){
    // 下面的语句将创建一个Puppy对象
    Puppy myPuppy = new Puppy("zacharyk.cn")
  }
}

// 编译并运行上面的程序,结果为
// zachary: zacharyk.cn

实例

public class Puppy{
  int puppyAge;
  public Puppy(String name){
    // 这个构造器仅有一个参数: name
    System.out.println("zachary:" + name);
  }
  public void setAge(int age){
    puppyAge = age;
  }
  public int getAge(){
    System.out.println("zachary的年龄为:" + puppyAge);
    return pupptyAge;
  }
  public static void main(String[] age){
    // 创建对象
    Puppy myPuppy = new Puppy("zacharyk.cn");
   // 通过方法来设定age
    myPuppy.setAge(18);
    // 调用另一个方法获取age
    myPuppy.getAge();
    // 你也可以像下面这样访问成员变量
    System.out.println("变量值:" + myPuppy.puppyAge);
  }
}

// 编译结果
// zachary: zacharyk.cn
// zachary的年龄为:18
// 变量值:18

源文件声明规则

  • 一个源文件只能有一个pulic类
  • 一个源文件可以有多个非public类
  • 源文件的名称应该和public类的类名保持一致
  • 如果一个类定义在某个包中,那么package语句应该在源文件的首行
  • 如果源文件包含import语句,那么应该在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面
  • import语句和package语句对源文件中定义的所有类都有效,在用一个源文件中,不能给不同的类不同的包声明

Java包

包主要用来对类和接口进行分类,当开发Java程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类

import语句

在Java中,如果给出一个完整的限定名,包括包名,类名,那么Java编译器就可以很容易地定位到源代码或者类,import语句就是用来提供一个合理的路径,使得编译器可以找到某个类。