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

本文探讨了从面向过程到面向对象的转变,重点介绍了类的概念,包括数据和函数的组合以及访问权限。类是C++和Java中描述对象的工具,通过设置访问权限来控制对数据和函数的访问。文章比较了C++和Java中定义类的差异,强调了Java中每个成员必须指定访问权限的特点。
摘要由CSDN通过智能技术生成

  • 从面向过程到面向对象
    面向过程(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
数据成员实例变量
函数成员方法成员,简称方法
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值