JAVA 类和对象

一、类与对象的概念

类:构造对象的模板和蓝图;类是抽象的概念集合,表示的是一个共性的产物,类之中定义的是属性和行为(方法)。
对象:对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。
(理解:我们将类想象成制作小甜饼的切割机,将对象想象为小甜饼;类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。用一句话来形象的概括:类好比是一张需要填写的空表格模板,对象就好比是一张填写好的表格。)
创建类的实例:由类构造对象的过程。
实例域:对象中的数据
方法:操纵数的过程。

二、类之间的关系(三种)

1)依赖("usea-a"):一个类的方法操纵另一个类的对象,就称之为一个类依赖于另一个类。
2)聚合("has-a"):一个类的对象包含一部分另一个类的对象。
3)继承("is-a"):类A由类B继承而来,就是说明类A包括类B的所有方法,而且类A还具有其他的一些额外功能。

三、类和对象的定义

1)类的定义

首先定义一个简单的类:
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
    }
}

类体由两部分构成:一为实例域(或成员变量)定义;二为方法定义。
2)对象的定义

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

  • 声明:声明一个对象,包括对象名称和对象类型。
  • 实例化:使用关键字new来创建一个对象。
  • 初始化:使用new创建对象时,会调用构造方法初始化对象。

下面是一个创建对象的例子:

public class Puppy{
   public Puppy(String name){
      //这个构造器仅有一个参数:name
      System.out.println("小狗的名字是 : " + name ); 
   }
   public static void main(String []args){
      // 下面的语句将创建一个Puppy对象
      Puppy myPuppy = new Puppy( "tommy" );
   }
}


3)域和实例域
域:翻译成英文就是field, 也就是我们常说的字段,或者说是属性。所谓域,其实是“field”的翻译  

实例域:就是 实例("object" )的"field"。包括实例域和静态域,静态域又叫类域,即java对象中的数据(instance field)
,也就是类的字段和类的属性
3)final实例域
final修饰符大都应用于基本类型域,或不可变类的域,如:
private final String name;// 将name域声明为final,在对象构建之后,这个值将不会被修改,既没有setName方法
4)静态域

 如果将静态域定义为static ,那么每个类中只有一个这样的域,而每一个对象对于所有的实例域都有自己的一份拷贝本。例如,Employee类中有一个实例域Id和一个静态域nextId,如下所示:

Class Employee
{
   private static int nextId = 1;
   private int id;
}










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值