面向对象

面向对象

类是面向对象程序设计实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。

类的实质是一种引用数据类型它的本质是数据类型,而不是数据,所以不存在于内存中,不能被直接操作,只有被实例化为对象时,才会变得可操作。

类是对现实生活中一类具有共同特征的事物的抽象

类的作用

类的作用是是连接函数调用中主调函数与被调函数的桥梁。

类的作用是为了安全。

类的作用是继承。

类和对象的关系

对象是对客观事物的抽象,类是对对象的抽象。

对象是类的实例,类是对象的模板。

面向对象和面向过程的区别

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物bai在整个解决问题的步骤中的行为。

以洗衣服为例

面向过程:

1、收集脏衣服

2、拿出洗涤剂

3、添水,开始洗衣服

4、拧干衣服

5、晒干

面向对象:

找个女朋友,让她洗或者买个全自动洗衣机

封装

封装就是把客观的事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的信息隐藏。隐藏实现细节,使得代码模块化。

封装的作用

1.隔离性:
被封装后的对象其外部对象是无法直接访问对象的内部实现细节,内部实现细节的的改动不会影响到外部对象的访问原则(即:对象内部修改后,在公开暴露指定的访问路径不变的情况下,外部访问它的对象是无需修改的),这是隔离性的体现,同时也是实现高内聚,低耦合的最根本的思想之一;
2.可复用性:
被封装后的对象可以被外部多个对象访问,而无需为每个外部对象去指定不同的服务对象;

例如,同一个类Student可以根据实例化的对象不同而不同

Student stu1 = new Student();
Student stu2 = new Student();
//stu1与stu2是调用相同类的不同对象

3.可读性:
被封装后的对象的名称如果命名恰当,那么就能在不看里面的实现细节的前提下,了解该对象的作用;

如何封装

例:将学生的属性封装到了学生类中

  class Student
    {
        string  _name;//成员变量,设置姓名
        string  _sex;//成员变量,设置性别
        int  _age;//成员变量,设置年龄
        string  _classroom;//成员变量,设置教室
    }

什么情况下封装

保障代码安全性

提高代码独立性,可读性,可复用性

提高内聚,降低耦合

get和set方法在属性封装时的应用

get方法一般是在成员变量私有化后调用其值的方法

set方法一般是在成员变量私有化后设置其值的方法

calss Student
{
	private string _name;
    get{return;}
    set(string n){ _nmae=n;}
}

类的访问修饰符

访问修饰符意义
public公有访问。不受任何限制。
protected保护访问。只限于本类和子类访问,实例不能访问。
internal内部访问。 只限于本项目内访问,其他不能访问。
protected internal内部保护访问。只限于本项目或者子类访问,其他不能访问。
private私有访问。只限于本类中成员,子类,实例都不能访问。

用public修饰即为公开,用private修饰即为私有化

成员变量和成员方法的访问修饰符

成员变量修饰符

public:公有访问,可以被所有包中的所有类访问

protected:保护访问,该修饰符修饰的成员变量若在一个公有类中,那么它可以被所在的类本身,同一个包中的所有类,其他包中该类的子类访问

默认访问修饰符:如果成员变量前没有访问修饰符,那么它为友好成员,他可以被同一个包中的所有类访问。

private:私有访问,该修饰符修饰的成员只能被他所在的类访问,任何其他的类都不能访问,包括它的子类。

成员方法修饰符

公有访问控制符 public 使用public修饰的方法可以作为该类对外的接口

默认访问控制符具有包访问属性,可以被同一个包内的其他类访问

保护访问控制符 protected 使用该访问修饰符的方法可以被该类自身,同一个包内其他类,其他包中该类的子类访问

私有访问控制符 private使用该访问控制符的方法是能被该类自身访问,任何其他类不能访问,包括该类的子类

构造函数

构造函数是在创建给定类型的对象时执行的类方法

构造函数具有与类相同的名称,它通常初始化新对象的数据成员

不带参数的构造函数称为“默认构造函数”。

无论何时,只要使用 new 运算符实例化对象,并且不为 new 提供任何参数,就会调用默认构造函数。除非类是 static 的,否则将为无构造函数的类提供一个公共的默认构造函数,以便该类可以实例化。

构造函数必须是在类里的一级声明,并且命名为类名

class Student()
{
    public void Student(){
        //构造函数
    }
}

构造函数的作用

为对象分配存储空间,对数据成员进行初始化

为什么要创建对象(实例化)

类是一个抽象体,是对一类事物的抽象体;而对象就是一个具体的事物,对象的抽象就是类。

用汽车来举例,类就是汽车的图纸,对象就是汽车,如果要开一辆汽车,不可能开图纸,只有把图纸变成实际存在的汽车才可以开

同理要想调用类的属性和方法,必须先将类实例化

类成员变量和类方法的访问方式

创建类

class Student()
{
	string _nmae;
	int _chengji;
	public getChengji(int x){
        _chengji=x;
	}
}

访问

Student stu1 = new Student();
//stu1._name  访问成员变量
//stu1.getChengji()   访问成员方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值