什么是类,什么是对象?
c语言:int a=10;
- int表示整数类,这是系统自带的一个类,a是这个类的一个对象。
- float,char都是系统自带的类。
面向对象的编程
1.创建自己的类
2.创建自己的对象
3.举例:学生类:student。对象张三李四,比如int a;int b。
如何创建自己的类
1.形式:
class student //这个大括号里的叫类的定义
{
string name; //学生的名字
int age; //学生的年龄
}
- 类名:student
- 类里两个内容,年龄,名字,叫做类的成员数据,或者叫属性,类比int a=10;10就是a的属性,
- 到这为止,类和c语言的结构体还是一样的。
公有和私有的初步概念
在类的定义里,形式如
class student //这个大括号里叫做类定义
{
public:
string name;
private:
int age;
}
- name公有
类的外部(主函数里或者其他类)可以读写name的值 - age私有
类的外部外面看不到 - 可以只有public
可以将名字和年龄都写在public,初学者可以先不写private。
没有private的类相当于结构体
如何使用一个类
- 类被重新定义后,就创建类的对象,形式和int a一样;
student aa;
创建一个student类的对象,名字叫aa
aa.age=20;
给aa的属性赋值,和结构体一样
什么是成员函数
成员函数的重载
和c语言一样,成员函数也可以重载。
==不同函数可以有相同的函数名,通过不同的输入参数来识别。函数的重载。==
class student
{
public:
int age;
string name;
bool set(int a);//两个函数名字一样,但输入格式不一样
bool set(string a);//这两个函数定义略过,name=a;return true即可。
}
第一阶段总结
1.类(学生,类定义里要写成员和方法的声明)
2.对象(aa)
3.成员数据(年龄和名字,又叫属性)
4.成员函数(set,给年龄赋值,又叫方法,具体内容写在类的外面)一个面向对象的代码最少有三部分
1.类的定义;
2.成员函数的定义;
3.创建对象然后调用方法;
构造函数
student aa,创建aa对象,aa有默认值吗?
如果有构造函数,那aa就有默认值。为什么要构造函数?
建立一个对象aa,要给他的年龄和名字分别赋值,那就要写两行代码set(“张三”);set(20),使用构造函数后,即使你有再多的成员数据,不用一一写出。只用写set(aa)即可。
==构造函数的本质即对象初始化。==构造函数的名字必须和类的名字一样。