秋栈博客

七月

Java入门《六》——类和对象

3
2021-10-10
类和对象是Java中经常被提到的两个词汇,实际上可以将类看作对象的载体,它定义了对象所具有的功能。

一、类

类是封装对象的属性和行为的载体,在Java语言中对象的属性以成员变量的形式存在,而对象的方法以成员方法的形式存在。

1、类的构造方法

构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的,构造方法分为有参构造方法和无参构造方法,区别就在于有没有参数。
public class Example {
    
     public Example()  {                              // 定义无参构造方法
         System.out.println("无参构造方法"); 
     }
     
     public Example(String name) {                   // 定义有参构造方法
         System.out.println("有参构造方法");
     }
 
 }
在定义构造方法时,构造方法没有返回值,且构造方法不需要void关键字进行修饰。“public”是构造方法的修饰符,“Example”是构造方法的名称。在构造方法中可以为成员变量赋值,这样当实例化一个本类的对象时,相应的成员变量也将被初始化。

2、类的主方法

public static void main(String[] args) {
    // ...
}

3、成员变量

 public class Student {
 
      private int id;         // 定义一个int型成员变量,学号
      private String name;    // 定义一个String型成员变量, 姓名
      
      public Student() {     // 定义无参构造方法
      }
      
      public Student(int id,String name) {       // 定义有参构造方法
    	  this.id=id;
    	  this.name=name;
      }
      public void setName(String name) {     // 定义一个setName()方法,用于导入学生姓名
    	  this.name = name;                    // 将参数值赋给成员变量
      }
      public String getName() {        // 定义一个getName()方法,用于获取学生姓名
    	  return this.name;
      }
      public Student getStudent() {    //返回Student类引用
    	  return this;
      }
 }
在Java语言中使用class关键字来定义类,Student是类的名称;在Student类中定义了三个成员变量,分别为学号和姓名,可设置初始值也可不设置初始值,若不设置初始值则会有默认值;private关键字用于定义一个私有成员,后面会介绍public、protected和private。接下来的两个构造方法上面已经提到过了,this关键字用于引用对象的成员变量和方法,在后面会有所介绍。一般在这样的类中每一个变量都会有set和get方法,set方法是带参数的方法没有返回值,get方法是有返回值的方法,用于获取。最后还有一个getStudent()方法,它的类型是Student类的,用于返回Student类的引用,用this关键字实现。

4、成员方法

成员方法对应类的行为,就是上述实例中讲的getName()方法,分别获取学生姓名和设置学生姓名的方法
权限修饰符 返回值类型 方法名(参数类型 参数名){
    // ...
    return 返回值;
}
局部变量是在方法执行时创建,在方法执行结束时被销毁,使用时必须赋值或初始化。所以局部变量的有效范围从该变量的声明开始到该变量的结束为止。若一个方法中含有与成员变量同名的局部变量,则方法中对这个变量的访问以局部变量进行访问。例如id,在上述方法中id=0,而不是Student类中的成员变量id的值。

6、静态变量、常量和方法

由static修饰的变量、常量和方法被称作静态变量、常量和方法。静态成员是属于类所有的,区别于个别对象,可以在本类或其他类中使用类名和“.”运算符调用,语法格式为: 类名.静态类成员
 public class StaticTest {
 
      final static double PI=3.1415926;       // 在类中定义静态常量
      static int id;                         // 在类中定义静态变量
      
      public static void demo01() {
    	  System.out.println("test");
      }
      public static void main(String[] args) {
    	  System.out.println(StaticTest.PI);    // 调用静态常量
    	  System.out.println(StaticTest.id);   // 调用静态变量
    	  StaticTest.demo01();                 // 调用静态方法
    	  
      }
 }

7、权限修饰符

Java中的权限修饰符主要包括private、public和protected,这些修饰符控制着对类和类的成员变量以及成员方法的访问。区别见下表:
访问位置                                类修饰符
private protected public
本类 可见 可见 可见
同包其他类或子类 不可见 可见 可见
其他包的类或子类 不可见 不可见 可见
若一个类的访问权限为不可见,这个类将隐藏其内的所有数据,以免用户直接访问它。当声明类时不使用public、protected或private修饰符设置类的权限,则这个类预设为包存取范围,即只有同一个包中的类可以调用这个类的成员变量或成员方法。
  • 0