JAVA初识


类和对象

类(class)是对一类事物的抽象描述。对象(object) 是某一类中一个或多个具体的事物,又可称为实例(instance)。

类是对一类事物的描述,是抽象的。 对象是一类事物的实例,是具体的。 类是对象的模板,对象是类的实体。

类包括事物的属性和行为。属性就是该事物的状态信息; 行为就是该事物能够做什么。

类的定义

class 类名 //类定义

????域定义;

????方法定义;

数据类型 域名;//域定义

方法类型 方法名 (参数)//方法定义

????方法体

  • 域(field),是对象的属性,可称成员变量。方法(method),就是C/C++中的函数,它是对象的行为,可称成员方法。
  • 若不给出域的初值,它也会被初始化,具体见前面的默认初始化。方法的参数都要单独说明数据类型。
  • 定义在方法中的变量是一般变量,也可称为局部变量。如果成员变量与方法中的局部变量同名,那么方法中只能访问到局部变量,也就是说在方法中局部变量覆盖成员变量。
  • 方法若是没有类型,写void 也不可以。而且方法名必须和类名一致。
    举个例子:平面上的点
class Point
{
   int x,y;
   void move(int movex,int movey)
   {
      x+=movex;
      y+=movey;
   }
   void print()
   {
      printIn("("+x+","+y+")");
   }
 }

对象的声明和创建

类 对象;//声明

如 Point p1,p2;//上一个例子的延续

new 方法();//创建

如 p1=new Point();

Point p1=new Point();//同时声明和创建

对象的使用

对象名 . 域

对象名 . 方法名(参数),其中“. "是分量运算符。

方法的重载

所谓方法重载就是在一个作用域(如类)中定义多个重名的方法。方法重载之要求方法的名字相同且形参不同,与方法的修饰符和返回值类型无关。一般地,具有相似性质或功能地运算使用重载。

构造方法

创建对象时通过new调用类中的构造方法。如果类中没有构造方法,则不能创建对象。所以定义类时记得定义构造方法。在一个类中也可以定义多个构造方法,形成构造方法重载。
如果类中没有构造方法,Java编译器会自动生成一个默认的构造方法,这个构造方法没有参数,方法体也为空。

class Point
{
   int x,y;  
   Point (int x1,int y1)    //构造方法重载
   {    
     x=x1;
    y=y1;
   } 
   Point () //构造方法重载
  {
    x=0;
    y=0;
   } 
void move(int movex,int movey)
{
   x+=movex;
   y+=movey;
}
 void print()
 {
    printIn("("+x+","+y+")");
 }
 }
public static void main()
{ 
   Point p1;
   p1=new Point(5,5);
   Point p2=new Point();
   p1.print;
   p2.print;
   p1.move(6,6);
   p2.move(9,9);
   p1.print;
   p2.print;
}

所以方法可以创建对象,也可以对对象初始化。

成员变量和局部变量区别

  • 在类中的位置不同!
    成员变量:类中,方法外
    局部变量:方法中或者方法声明上(形式参数)
  • 作用范围不一样!
    成员变量:类中
    局部变量:方法中
  • 初始化值的不同!
    成员变量:有默认值
    局部变量:没有默认值。必须先定义,赋值,最后使用
  • 在内存中的位置不同
    成员变量:堆内存
    局部变量:栈内存
  • 生命周期不同
    成员变量:随着对象的创建而存在,随着对象的消失而消失
    局部变量:随着方法的调用而存在,随着方法的调用完毕而消失