面向过程的结构化程序设计


Java学习————对象和类_java



结构化程序的弊端:

1.缺乏对数据的封装;

2.数据和方法(对数据的操作)的分离。


什么是抽象数据类型

  • 所谓抽象数据类型可以理解为:将不同类型的数据的集合组成一个整体用来描述一种新的事物;

    Java学习————对象和类_java_02


什么是类

  • 类定义了一种抽象数据类型。

  • 类不但定义了抽象数据类型的组成(成员变量),同时还定义了可以对该类型实施的操作(方法)。

/**定义雇员类*/
public class Emp{
  String name;
  int age;
  char gender;
  double salary;
  }

在此示例中,仅仅定义了Emp类型的组成,即成员变量。该类定义了4个成员变量:String类型的name用于存放名字;int类型的age用于存放年龄;char类型的gender用于存放性别;double类型的salary用于存放工资。


  • 定义了Emp类以后,提升了代码的模块化以及代码的重用性,但程序依然存在问题

  • -打印信息的方法是只能针对Emp数据操作,属于Emp自身的方法,需要实现数据和方法(对该类数据的操作)的统一。



定义类的成员变量

  • 类的定义包括“成员变量”的定义和“方法”的定义,其中“成员变量”用于描述该类型对象共同的数据结构。

  • Java语言中,类的成员变量的定义可以使用如下语法:

            class  类名{

                成员变量类型  变量名称;

                  ... ... ...

                }

  • 对象创建后,其成员变量可以按照默认的方式初始化。

  • 初始化对象成员变量时,其默认值的规则如下表所示:

成员变量的类型默认初始值

数值类型(byte、shout、int、long、float、double)

0
boolean型false
char型/u0000
引用类型null

定义类的方法

  • 类中除了定义成员变量,还可以定义方法,用于描述对象的行为,封装对象的功能。

  • Java语言中,可以按照如下方式定义类中的方法:

           class  类名{

                修饰词  返回值类型  方法名称([参数列表]) {

                   方法体... ... ...

                  }

               ... ... ...

            }



使用new关键字创建对象

  • 类定义完成后,可以使用new关键字创建对象。创建对象的过程称为实例化。

  • new运算的语法为:

       new  类名();

       例如:new JFrame()可以创建一个窗体对象。

Java学习————对象和类_java_03



引用类型变量

  • 为了能够对实例化的对象进行访问控制,需要使用一个特殊的变量——引用。

  • -引用类型变量可以存放该类对象的地址信息,通常称为“指向该类的对象”;当一个引用类型变量指向该类的对象时,就可以通过这个变量对对象实施访问。

  • -除8种基本类型外,用类、接口、数组等声明的变量都称为引用型变量,简称“引用”。

  •  Java学习————对象和类_java_04


访问对象的成员变量、调用方法

  • 可以通过引用访问对象的成员变量或调用方法。

      Cell c = new Cell();
      
      c.row = 2;
      c.col = 3;
      
      c.drop();
      c.moveLeft(2);
      String str = c.getCellInfo();



引用类型变量的赋值

  • 引用类型变量存储的是对象的地址信息。相同类型的引用类型变量之间也可以相互赋值。

  • 引用类型变量之间的赋值不会创建新的对象,但有可能会使两个以上的引用指向同一个对象。

          Emp e1 = new Emp();
          Emp e2 = e1;    //将e1的值(对象的地址信息)赋给e2,e2和e1只想相同的对象。
          e1.name = "黄河大虾";
          e2.name = "白发馍女";
          System.out.println(e1.name);

通过引用e1和e2操作的是相同的对象



null和NullPointerException

  • 对于引用类型变量,可以对其赋值为null。null的含义为“空”,表示还没有指向任何对象。例如:

    Emp emp = null;    //引用emp中的值为null,没有任何对象;
    emp = new Emp();    //引用emp指向了一个Emp对象;
  • 当一个引用的值为null的时候,如果通过引用访问对象成员变量或者调用方法是不合逻辑的。此时,会产生NullPointerException.例如:

    
    JFrame frame = null;
    frame.setSize(200,300);

会产生NullPointerException