2014-10-21 在iteye写的文章,那时候才大三,现在研一。还是想把当时的博客摘抄过来。
原地址:
http://danlei94.iteye.com/blog/2146077
学习Java语言也有一段时间了,现在回过头来总结一下最基本的类和对象的知识。
之前大一上就接触了C语言,大二上的时又候花了一学期学习了C++,如今大三上,我开始学习Java语言了。说实话,有了之前C语言尤其是C++的基础,学习Java起来还算比较轻松的。毕竟C++和Java都是面向对象的编程语言,并且编程语言本身之间都有很多相似相同的地方。
说到面向对象,那么不得不提的就是类和对象了。Java代码是以类为单位的。(这点和C++有区别,Java都是在类中写方法,并且把主函数也放在类中)
在我看来,类就是一个模板,比如一个学生类,这并没有指定这个学生类是某某某(换句话说就是没有特定指某个个体),而是抽象出一种学生的模板,每一个学生都包含性别年龄班级学校等等属性,每一个学生也包含一些共同的行为,比如都要完成作业,都要到学校上课,等等。
对象则是一个具体的概念了。比如在学生类模板的基础上,我要指一个特定的学生---XX学校XX班的小冯,它肯定具有所有学生的属性和行为,但是她的属性和行为又和其他学生不一样。
我们可以看一个学生类和对象的实例:
public class Student{
private String name;
private int age;
public void setname(String name)
{
this.name=name;
}
public void setage(int age)
{
this.age=age;
}
public void study(int hour)
{
System.out.println(name+"学习了"+hour+“个小时”);
}
public static void main(String args[])
{
Student stu=new Student();
stu.setname("小冯");
stu.study(10);
}
}
根据上述例子说明,我们可以知道,
一个类,它包含了属性和方法两大模块。属性是指的一些变量或者常量,如上面的name/age;而方法就是函数体,在函数里面可以完成某些行为,如上例中的study()函数。
对象,就是在主函数中创建的特定的学生,如上例中通过 Student stu=new Student(),来创建了一个基于学生类模板的stu对象。这个stu对象可以有生类里面所有的属性和方法,不过具体化了。
总的来说:
1.类可以看做一个模板,我们可以根据类来创建很多的对象,而这些对象都具有我们在类中定义的方法和属性。
2.类是抽象的,而对象是具体的。可以通过new关键字去实例化对象。
另外,我们再来讨论一下 类中的构造方法。
我们在学习C++的时候,其实也都接触和掌握了类和对象。由上面的分析可以看出,除了主函数的位置,Java类和对象的思想和C++的一模一样。同样的,我认为构造方法也是相同的!
构造函数就是在创建对象时,用来初始化对象的方法。
构造函数的特点:
1.函数名必须和类名相同
2没有返回值
注意:
1.如果类中没有声明构造方法,那么编译时会自动生成一个默认的构造方法,只是会责怪方法体里面什么也没有写。
2.如果类中有声明构造方法,那么就不会再去生成默认的构造方法,而直接使用你定义的构造方法。
3.构造方法也可以重载:通过形参类型和个数的不同,可以定义不同的构造方法体。在创建对象时根据传进来的实参的类型和个数来选择到底调用哪一个构造方法。
总的来说,我通过一个实例说明了类和对象的关系,顺便提及了类中构造方法的特点等。
希望大家多多支持,如果有啥不对的,大家指出来哟~ ~