与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的小白的一点学习心得,以后还会继续学习继续写,有什么错误请各位大神多多指点