Java 入门————类与对象

一.何为类?何为对象?

     首先有句名言——万物皆为对象。这句话道出了Java的本质:面向对象。

     那么什么是对象?

     对象实际上就是生活中存在或者幻想出来的某一个具体事物,例如:一个茶杯,一瓶水,一只小狗等等。。。

     对于一只小狗来说,它会有很多特征,例如:名字,品种,毛发颜色等等。。。

     以上的名字等都是这只小狗的属性(特征)。然后小狗有各种各样的行为,比如说:吃东西,跑,跳等等。。。

     这些都可以认为是这个小狗(对象)的行为。

     

     基于以上的信息,我们在使用Java编程的时候可以抽象出一个小狗的类,这个类的一个实例就可以看作是一只小狗,而类内的

     属性就是对象的属性,类内定义的的行为即为对象的行为的抽象。

     举一个具体的例子:

     


//小狗的类
class dog{
    String name;//名字
    int age;//年龄
    String variety;//品种
    

//小狗吃东西
    public void eat(){
        //eating......
}
    
}


dog a_puppy=new dog();//实例化了一个小狗对象

在这里,我们定义了一个小狗的类,并且实例化了一个小狗对象。

对于类可以这样理解:类是一个事物的抽象化,它没有具体的样子,他只是一个概念。

对于对象可以这样理解:对象是一个类的实例化,它是可以真实存在的,他是一个具体的事物。

 

二.类的格式与构造函数

    Java类的格式如下:

访问修饰符  class 类名  (extends)父类名(implements)接口名{
            //属性
            访问修饰符    数据类型  属性名;
            //构造函数
            访问修饰符  类名(数据类型  参数名,...){
                
            }

            //普通方法
            访问修饰符 返回值数据类型  方法名(数据类型  参数名,...){
                
            }
        }

先来讲解访问修饰符:

有接触过C++的人应该会很熟悉这个名词,访问修饰符实际上就是一种保护区,它是用来控制属性是否可以被访问的。

常用的访问修饰符有三种:private(私有)public(公有)protected(受保护的)。还有一种:default(默认的)

下面用一个表来说明访问修饰符的限制范围:

               访问权限   类   包  子类  其他包

      public          ∨   ∨    ∨         ∨          (对任何人都是可用的)

         protect        ∨    ∨    ∨         ×    (继承的类可以访问以及和private一样的权限)

      default        ∨    ∨     ×         ×    (包访问权限,即在整个包内均可被访问)

      private        ∨    ×      ×         ×    (除类型创建者和类型的内部方法之外的任何人都不能访问的元素)

三.构造方法、方法重载和this指针

    第一,任何一个类都会有构造方法。构造方法是在类被实例化为一个对象时调用的,其功能为初始化对象的属性以及

实例化对象。我用之前的例子来说明一下:

//小狗的类
class dog{
    String name;//名字
    int age;//年龄
    String variety;//品种
   
//构造方法
public dog(String name,int a,String v){
this.name=name;
this.age=a;
this.variety=v;
}

//小狗吃东西
    public void eat(){
        //eating......
}
    public void eat(String n){
        //eating......
}
}


dog a_puppy=new dog("tom",1,"tiddy");//实例化了一个小狗对象

    这里新增加了一个dog()的构造函数,可以看出来它做了一个初始化的作用,为实例化的dog对象赋予了name,age,variety的值。

第二,从上述的例子中可以看到有个变量this.name,这里的this就是this指针,那么this指针有什么作用呢?

    其实很简单,就如同它字面的意思,指向这个对象。在每一个对象被实例化的时候都会生成一个只属于自己的this指针,它起的作用就是指代这个对象。所以就可以解释this.name是什么了,this是本对象,那么this.name就是本对象里的name属性。

    那么什么时候会用到this呢?

    一般来说,如果方法的参数名与类内属性名相同时,会用到this来确定哪一个是属性,哪一个是参数。

    在这里补充一点,如果上例中的this.name=name;改为name=name;那么name会是参数,因为Java的编译原则是就近原则。name参数明显是要比name属性近。

第三,细心的同学会看到上例中有两个eat()函数,这里就要提到方法的重载了。什么是方法的重载呢?

    如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。

例如上面的eat()方法,一个有参数,一个没有参数,这就是方法的重载。方法的重载有几个条件:

  • 方法名必须相同
  • 方法的参数类型,参数个必须不一样
  • 方法的返回类型可以不相同
  • 方法的修饰符可以不相同
  • main 方法也可以被重载

    到这里,Java类与对象的基本概念就讲完了,下面就是关于类的继承的讲解。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值