疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

浅谈Java对象和类


 

   

  1.对象 object

  对象是可被感知的一个实体,有唯一的名称、有一组表现对象的状态属性和对象内在具有的行为能力。比如张三这个人,他有姓名、职业、眼睛等具体状态属性,能实施说、跑、吃等方法。对象,在java代码中就是某类型的变量。

  对象申明:类型 对象变量名

  对象创建:对象变量名=new 类型();对象申明和创建可以一次完成。

  例如:

  Class Testcalc{

  Public static void main(string arg[])

  {

  Calculator c=new Calculator(); //创建对象(先声明一个对象,包括对象名称和对象类型(声明);使用关键字new来创建一个对象(实例化);使用new创建对象时,会调用构造方法初始化对象(初始化))

  C.plus (10,20)

  }

  }

  向对象发送消息(访问实例化对象和方法):对象名.属性,或者,对象名.方法(实际参数列表),就是调用该对象的某属性或某方法。例如上例中:

  C.variablename; //访问类中的属性

  C.plus(); //访问类中的方法

  说明:可以对某对象的属性进行读取和修改,也可以调用某对象的某方法。调用对象的属性和有返回的方法,必须做进一步的加工;调用对象的无返回的方法,直接调用。

  2.类 class

  类是具有相同属性和方法的对象的集合,是对象集合的抽象或模板。 例如,“人”类,“狗”类,“自行车类”,“交通工具”类。

  定义类:

  [类修饰符] class 类名称{

  类成员

  }

  例如:

  class Human{

  String className="人类";

  int age,height;

  String name;

  void speak(){

  System.out.println("大家好,哈哈哈");

  }

  int salary(String workName){

  ...

  }

  }

  class Dog{

  ...

  }

  class A{

  ...

  }

  一个类可以包含以下类型变量:

  局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

  成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

  类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。

  一个类可以拥有多个方法,在上面的例子中:speak()、salary()都是Human类的方法。

  3.类和对象的关系

  类是具有相同属性和方法的一组对象的集合,是抽象的概念模型,而对象是类的实例,是具体的。

  4.属性 field→域

  语法:[域修饰符] 类型 属性名[=属性值] 成员变量→和变量的申明方式一样

  5.方法 method

  语法:[方法修饰符] 方法返回类型 方法名([形式参数类型和名称列表]){

  方法主体内容;

  }

  方法返回类型:任何方法都有返回类型,一个方法如果没有任何返回结果,则返回类型为void;返回值的类型为int型,则返回类型就为int,如此类推。

  属性和方法不能重名,方法后面有小括号,属性后没有小括号system.out.println()

  形式参数:方法运行过程中使用的形式上的参数,采用形式参数的好处是方法运行时能根据传入额实际参数的不同,运行出不同结果。

  返回结果的方法:在方法内用以下语句: Return某值

  注意:类名首字母大写,属性和方法不大写;

  6.构造器

  构造器,类的成员,构造器名与类名相同,其作用是在创建该类对象时初始化该类对象的属性的值,返回的是该类型的对象。

  特点:

  1.名称和类名相同;

  2.语法类似于方法,但没有返回类型,连void都没有;

  3.在创建对象时被调用,如: A a = new A();中A()就是构造器;

  4.如果类中没有申明构造器,实际运行时jvm会自动添加一个无参数的空内容的构造器;

  5.构造器可以使用访问修饰符,但不能使用成员的其他修饰符,这是构造器与方法的第二个区别,另外构造器无法被继承;

  6.一个类可以有多个构造器(指定不同参数类型或个数即可--重载);

  7.创建对象时按构造器格式赋实参;

  例如:

  class Box{

  private int width,length,deepth; //使用访问修饰符private;

  Box(int w){ //只有一个参数类型的构造器,名称与类名相同;

  width=w;

  length=l;

  deepth=w;

  }

  ......

  }

  class MyBox{

  public static void main(String[] arg){

  Box box1=new Box(10); //特点7,创建对象时按照构造器的格式赋实参;

  ......

  }

  }

  7.重载

  重复加载方法和构造器。Overload,同一个名称,但传递的形式参数个数和类型不同的多个方法和构造器。

  例如:

  class A{

  void show(){

  System.out.println("A");

  }

  void show(String name){

  System.out.println(name);

  }

  void show(int age){

  System.out.println("I am "+age+" old.");

  }

  void show(int a){

  ...

  }

  }

  A a = new A();

  a.show(); //返回结果为 A;

  a.show("jack"); //返回结果为 name;

  a.show(20); //返回结果为 I am 20 old;