面向对象程序设计4——类={数据+函数+访问权限}

只愿长相守 提交于 2020-03-17 07:53:25

  • 从面向过程到面向对象
    面向过程(Procedure Oriented)是一种以操作序列为中心的编程思想

    编程目的是实现计算机辅助的数据处理
    把完成任务需要的命令按一定格式编写,完整的程序要考虑各种可能的操作流程

    常用的流程,顺序结构、选择结构、循环结构以及递归

    面向过程的程序设计不仅要知道要做什么,还要清楚如何通过具体的流程实现这个任务,以及知道写出的代码将会被如何执行

描述事物——具有特定功能的事物就是对象
1.是什么——数据:事物有哪些属性,在这些属性上的值是多少
2.能做什么——函数:包括对事物的各种操作,如计算、判断、修改等

结构体
C语言描述事物的工具,把不同类型的数据组织到一起

struct book
{
	char namep[40];
	char abstract[200];
	char author[20];
	int page;
	double price;
}
  • 类是结构体的延伸
    在面向过程的基础上,要告诉计算机如何把数据与相关联的函数组织在一起——编写类
class 类名
{
	……        //类={数据成员(是什么)+函数成员(能做什么)+访问权限}
}
  1. 类是类型的延伸
  2. 日期
    示例:1949-10-1
    存放一个日期需要几字节
    比大小、星期几…

编写关于“日期”及其功能的代码——
安排能够存放具体某个日期的容器——对象
对对象实施某些它能做的操作

  • 设计日期类
    从struct到class
    结构体是若干个数据项的联合/组合/捆绑

添加行为

#include<iostream>
struct date   //class date
{
	int year,month,day;   //定义结构体类型 
	//添加函数--能做什么 
	void Show()   //显示日期 
	bool LeapYear()  // 判断是否是闰年 
	//bool类型,数据取值只能为true or false 
	int Weekday()    //判断当前日期为星期几 
}

int main()
{
	struct date d;   //定义名为d的结构体变量
	
	d.year=2017;   //如何访问结构体变量的域 
	d.month=10;
	d.day=18; 
 } 
 

//从结构体延伸到类 ,换保留字——class

添加访问权限

#include<iostream>
class CMyDate
{
  private:    //用保留字private规定禁止外部访问 
	int year,mmonth,day;  //数据部分,通常不允许外部访问,与结构体不同 
  public:     //规定允许外部访问 
	void Show();
	bool Leapyear();
	int Weekday();   //函数部分,允许外部访问 
}

//是在结构体上仅有数据成员的基础上,添加函数成员访问权限的构成
定义一个类,相当于一个新的类型
访问权限有:public,privateprotected三种(缺省为private)
类的名称通常以大写C开头

  • 设计Java的类
class MyDate
{
	private int year,month,day; //数据成员&结构体变量
	
	public void Show()
	{……}
	public boolean LeapYear()
	{……}
	public int Weekday()
	{……}
}

Java语言面向对象,编写程序就是编写一个个类
语法规则:
1.格式框架略有差异,}之后无分号
2.每个成员分别规定访问权限,无冒号,称“方法成员”

C++与Java的定义类的区别
C++允许后一成员沿用前一成员的权限设定
Java要求每个成员指定访问权限

C++与Java关于类的区别
C++ Java
数据成员 也称实例变量
函数成员 也称方法成员,简称方法

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!