类与对象
面向对象
之前学C++的时候虽然也是面向对象的,但对其本质却不甚清晰,这两天通过学习java的类,感觉和C++几乎一样,但却有一种豁然开朗的感觉,对面向过程和面向对象有了更清晰的理解。面向过程的编程方法没有类和继承的概念,更注重于按步骤逐个调用函数,逐行实现目标,如C语言。而面向对象则因为有了对象、封装、继承、多态的存在而变得更加灵活多变,在目的的实现过程中需先创建类,然后通过将类实例化为对象,通过对对象的操作实现目的。因为包过主函数在内的所有变量和函数都被封装在类中,因此个人感觉java是比C++更为彻底的面向对象。
public class+主类名{
public static void main(String [] args){
}
类:就是由人主观定义的一类事物,是抽象存在的,是一群具有共同属性和方法的对象的总称,如学生。类相当于一个模板,通过类可以创建多个对象。
对象:表示现实世界中的实体,是客观存在的,如学生类中的“张三”,便是学生类的一个实例(对象)。
Public class Student{
Private String name;
Private int Num;
Private int score;
Public Student(){};//构造
Public void set(){String name}{
This.name=name;
}
Public void set(String name,int Num,int score){//重载
This.name=name;
This.Num=Num;
This.score=score;
}
}
Student zhangsang = new Student();//实例化学生类的一个对象张三,并为其分配空间,因此对象张三具有类中定义的所有属性和方法。
同名方法,通过设置不同的参数列表,可以实现方法重载,其中参数列表的不同包括参数类型不同、个数不同以及排列顺序不同,返回值的不同不能用于实现方法重载。示例中Public void set(String name,int Num,int score) 便是对Public void set(){String name}的重载,代码在编译的时候会自动根据参数列表的不同来选择执行哪个方法体。方法的重载加强了编码的灵活性,使得同一运算符可以完成不同的功能。
构造函数:声明对象时,构造函数会被自动调用,当用户没有定义构造方法的时候,系统会自动生成一个空的构造方法。构造方法也可以重载。