java基础知识之类与对象

       与C语言相比,java多了面向对象的内容,主要也就体现在封装,继承和多态这三要素。而类与对象则是体现封装性的关键。那么什么是类呢?在我看来,类就是具有相同特征和方法的一类事物的集合。举个例子,比如说“狗”就是一个类,它表示所有的狗的集合,它具有名字,年龄,种类等特征以及吃,吠叫

 等方法,用代码来体现的话便是这样:

class dog
{
            //狗的名字
              private string name;
            //狗的年龄
              private int age;
            //狗的种类
              private string kind;

            //吃的方法
              public void eat()
            {
                  System.out.println(name+"is eating");
            }
            //吠叫的方法
              public void bark()
            {
                  System.out.println(name+"is barking");  
            }
            //设置狗的名字的方法
	     public string setName(string n)
            {
                  name=n;              
            }
            //设置狗的年龄的方法
              public int setAge(int a)
               {
                    age=a;
               }
             //设置狗的种类的方法
               public string setKind(string k)
               {
                    kind=k;
               }
}
  
于是一个类便创建好了,以上的public和private分别表示公有成员和私有成员,此处不作赘述。可是,

这个类有什么用呢?别急,单独一个类并不能做太多事,因为类只是一个模板,我们要做的事便是利用这个创建好了的模板“制造”出任意多的产品,也就是“对象”。如果说类是一个虚拟的大的框架,那么对象就是在这个框架下构建的实例。放在我们生活中,对象便是一切,或者说Everything is object.,每一个人都是对象,每一个物体都可以看成对象,就拿先前的dog类来说,如果说狗这个概念是类,那么每一只具体的狗就都是对象。例如:假如你养了一条萨摩耶犬Samoyed,你给它取名叫Tom,而它已经4岁了,这些都属于它的特征,而这只萨摩耶犬就是dog类的一个对象。于是我们这样可以给的dog类创建一个对象:

//给dog类创建一个对象Tom
dog Tom=new dog();

        然而现在的这个对象并不具备他的特征,因为我们还没有给他的特征赋值,于是我们需要通过Tom这个对象来调用dog类中的赋值用的函数setName(),setAge()和setKind(),分别给Tom的名字,年龄,种类赋值:

Tom.setName("Tom");
Tom.setAge(4);
Tom.setKind("Samoyed")

          做完这些,Tom已经成为一个有血有肉的对象了,而在我们外出时,我们想要让他吠叫来赶跑盗贼,该怎么做呢?

Tom.bark();

         现在有好事者想要让Tom学猫咪叫,会怎么样呢?

Tom.meow();

        那么Tom到底会不会喵喵叫呢?当然不会,因为猫叫的方法meow(),Tom并不会,所以自然不能喵喵叫,那么要让Tom学会猫叫又怎么办呢?很简单,我们回到dog类中,插入公有的meow的方法,这样的话不管是Tom还是别的狗都学会了猫叫。

class dog
{
            //狗的名字
              private string name;
           //狗的年龄
              private int age;
           //狗的种类
              private string kind;

            //吃的方法
              public void eat()
            {
                  System.out.println(name+"is eating");
            }
            //吠叫的方法
              public void bark()
            {
                  System.out.println(name+"is barking");  
            }
            //猫叫的方法     
             public void moew()
             {
                   System.out.println(name+"is meowing");  
             }

            //设置狗的名字的方法
	      public string setName(string n)
            {
                  name=n;              
            }
            //设置狗的年龄的方法
              public int setAge(int a)
               {
                    age=a;
               }
             //设置狗的种类的方法
               public string setKind(string k)
               {
                    kind=k;
               }
}

 然后我们再让Tom来学猫叫就不会有问题了。

Tom.meow();

          除了通过类中的set方法来设置对象的特征这条途径之外,我们还可以通过构造方法来实现。不过这样我们要自己编写构造函数,而不是调用默认构造函数。

class dog
{
    dog (string name,string kind,int age)       
    {
        this.name=name;
        this.age=age;
        this.kind=kind;
    }
     //这样定义好构造函数之后在主函数中,我们便可以在创建对象的同时给Tom赋予血肉之躯
    public static void main(String [] args)
    {
        dog Tom=new dog(Tom,samoyed,4);
    }
}

         以上是个人作为一个刚学java的小白的一点学习心得,以后还会继续学习继续写,有什么错误请各位大神多多指点微笑

猜你喜欢

转载自basecat.iteye.com/blog/2213649