面向对象基础——基本概念

1、面向对象编程的目的

  用人类思维的方式编写代码,并交给计算机执行

2、面向对象三大特征

  封装、继承、多态

3、什么是类?什么是对象?类和对象的区别?

a)类是模具,创建对象的模具,抽象的。

  类是一种数据类型,用户自定义的数据类型(定义了要开辟多大内存)

  类组成:字段(类中的变量,如,int num、string name等)、属性、方法、构造函数等

b)对象是具体的,是类的具体实例。对象具有属性(特征)和方法(行为)

注:类的成员变量存在于堆空间,方法中的局部变量存在于栈空间

  成员变量不必须赋值,局部变量必须赋值

4、C#中的4个访问修饰符

  public:   可以在任何地方被访问

  private:  只能在本类中被访问

  protected: 与private类似,子类可以访问父类的protected成员,但不能访问private成员

  internal: 只能在本项目中被访问

  定义一个类时,不允许使用private、protected修饰符,它的默认访问修饰符是internal。类的成员变量默认修饰符是private

5、属性   (属性的本质-就是两个方法)

  a)属性:一个具有get/set方法的变量,这个变量用于保护类中的一个私有变量不会受到非法的修改,限制了该成员变量的访问规则。

    在属性中,使用value来存储用户赋的值

  b)属性存在的意义:是为了保护与之相对应的字段.保证对字段的读取和赋值符合要求。

  c)属性可分为:读写、只读、只写(get和set访问器)

  d)将类中的某个私有变量设置为属性:

6、类的实例化

   语法:    实例名 = new ();

    在初始化类对象的时候,类的成员会被赋予的值: 数字类型初始化为 0 / 0.0;string类型初始化成 null;char类型初始化为 \0

7、构造函数

  它的名字必须与类名完全相同,在创建对象时用来初始化对象,为对象成员赋初值,是一种特殊的方法。

  (1)构造函数的特点:

a)没有返回值

b)函数名与类名完全相同

c)类里若无声明构造函数,默认会创建一个无参的构造函数

d)构造函数可以重载,也就是有多个参数不同的构造函数

  (2)构造函数的调用顺序:

    当我们实例化子类的对象时,会先创建子类对象,然后准备调用子类的构造函数。执行子类构造函数之前,会先创建父类对象,并执行父类构造函数,最后再执行子类构造函数。

  注意:一旦我们写了一个构造方法后,系统原先默认给我们添加的那个无参数得构造方法就不会再为我们添加了。

  在工作中拿到一个类后,首先要关心的是这个类有哪些构造方法,这些方法的参数是什么,怎么用的。

8、析构函数 

  与构造函数相对应的是析构函数,但在C#中几乎不使用析构函数,因为C#中有了一种垃圾回收机制。

  

8、this关键字   用来区别局部变量和成员变量重名问题

a)表示当前类,作为当前类的对象,可以调用类中的成员。this.成员(调用成员,自己)

b)调用本类的其他构造函数。:this()(调用构造函数,自己)

    注:this代表的是保存当前对象的堆地址

  c)this代表其所在函数所属对象的引用,即哪个对象调用this所在的函数,this就代表哪个对象本身

     注意:不能将关键字this用在静态构造函数和静态函数成员中,也不能在其它地方使用

9、base关键字   专门用来在子类访问父类成员

  base.标识符:“.”调用父类同名属性、同名函数、构造函数

a)base

调用父类中非私有的成员(调用成员,父类)base点不出子类独有成员。

调用父类中的构造函数(调用构造函数,父类)

当调用从父类中继承过来的成员的时候,如果子类没有重写则this.成员;与base.成员,没有区别。

b)如果子类重写了父类成员,则this.成员;调用的是子类重写以后的。base.成员;调用的依然是父类的成员。

c)子类构造函数默认调用父类的无参构造函数;

d)如果父类没有无参构造函数,则必须指明调用父类哪个构造函数

  注:this和base的访问

10、命名空间就相当于一套虚拟的文件夹

  命名空间里面的类,就相当于是文件夹里的文件

11、封装

(1)概念:隐藏对象的字段和功能的实现细节,只对外提供公共的访问方式

(2)类和对象本身就是封装的体现。

(3)属性封装了字段、方法和字段封装成了一个对象、将一堆业务单一的代码封装到了一个方法中、将一个功能封装到了几个类中、将一些具有相同功能的代码封装到了一个程序集中(dll、exe),并且对外提供统一的访问接口。(属性名、方法名等。)

时间: 2024-10-24 15:42:13

面向对象基础——基本概念的相关文章

Python基础08 面向对象的基本概念

Python基础 面向对象的基本概念 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 谢谢逆水寒龙,topmad和Liqing纠错 Python使用类(class)和对象(object),进行面向对象(object-oriented programming,简称OOP)的编程. 面向对象的最主要目的是提高程序的重复使用性.我们这么早切入面向对象编程的原因是,Python的整个概念是基于对象的.了解OOP是进一步学习Python

C#面向对象基础(一)

面向对象这个词我很早就知道了,但具体是什么东西?什么是面向对象?一直以来都 不理解,只知道它有三大特征,即封装-继承-多态.直到学习完C#视频和看完设计模式 中面向对象基础后,对C#面向对象才有了一个大致的理解.下面这幅图是我对它的一个 宏观的认识. 一.基本知识 1.类成员 属性 C#不直接访问类的数据,通过get和set访问类中字段 方法 表示类的行为.方法可以构造,也可以重载 2.封装 每个对象都包含它能进行操作所需要的所有信息,这种特性就是封装 3.继承 如果两个对象A和B,可以描述为B

C#面向对象的核心概念

一.面向对象的核心概念 (一)抽象--面向对象的根基 讲到抽象,不得不涉及到现代科学技术的基础--数学. 数学是一门抽象的科学,面对着纷繁复杂的世间万物,数学不理会各种事物的独特特性,而只抽取它们在数量上的特性,深刻揭示了"世间万物"在数量上表现出的共同规律,抽象正是数学的本质特征. 数学的一个分支--离散数学是计算机科学的根基之一,因此,计算机科学从诞生之日起,就与数学有着密不可分的联系,抽象思维也是计算机科学的主要思维方法之一. 在使用面向对象的方法设计一个软件系统时,首先就要区分

【Java面向对象基础(三)】面向对象思想

[喵"的Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinking in Java中提到“Everything is an object”,即万物皆对象.这里的“对象”指的是任何实体或者任何可以当作实体看待的“虚幻的事物”.比如现实中的人(男人.女人.老人.小孩而...).动物(大象.狮子.猴子...).桌子.凳子.汽车.ATM机等等,也可以使看不见摸不着的空气(氧气.二氧化碳.氮气

大话设计模式学习笔记——面向对象基础

前言 好记性不如烂"笔头"系列--大话设计模式学习笔记 目录 面向对象基础 面向对象基础 什么是类与实例 一切事物皆为对象,即所有的东西老师对象,对象就是可以看到.感觉到.听到.触摸到.尝到.或闻到的东西.准确地说,对象是一个自包含的实体,用一组可识别的特性和行为来标识.面向对象编程,英文叫 Object-Oriented Programming,其实就是针对对象来进行编程的意思.类就是具有相同属性和功能的对象的抽象集合.实例就是一个真实的对象.比如我们属于'人'类,而个人就是'人'类

PHP中oop面向对象基础知识(一)

                                                                                    OOP 基础知识汇总(一) >>>你需要了解以下概念面向对象&面向过程概念:  面向过程:专注于解决一个问题的过程.面向过程的最大特点,是由一个一个的函数去解决处理这个问题的一系列过程.  面向对象:专注于由哪个对象来处理一个问题.面向对象的最大特点,是有一个个具有属性和功能的类,从类中拿到对象,进而处理问题. [

面向对象的核心概念

1.面向对象的核心概念 从理论上说,面向对象技术拥有四大基本特性. (1)封装 这是一种隐藏信息的特征.封装这一特性不仅大大提高了代码的易用性,而且还使得类的开发者可以方便的更换新的算法,这种变化不会影响使用类的外部代码.可以用以下公式展示类的封装特性: 封装的类=数据+对此数据所进行的操作(即算法) 通俗的说,封装就是:包起外界不必需要知道的东西,只向外界展露可供展示的东西. 在面向对象理论中,封装这个概念拥有更为宽广的含义.小到一个简单的数据结构,大到一个完整的软件子系统,静态的如某软件系统

面向对象基础3(class0523)

怎么实现多态2-接口 接口是定义一种能力,规定子类能干什么和抽象类有些相似,解决类的单根继承.接口可以实现多继承 案例 鸟-麻雀sparrow,鸵鸟ostrich,企鹅penguin,鹦鹉parrot 鸟能飞鸵鸟,企鹅不能...你怎么办 练习:从学生,老师,父类Person,定义一个接口摄影Iphotographable ,唱歌的接口ISingable 子类继承抽象类,实现接口 接口中的成员必须不能有实现 接口中的成员不能有访问修饰符,隐式公开 接口中可以有属性.方法.索引器等,但不能有字段,构

Java入门——面向对象基础(一)

Java入门——面向对象基础(一) 本博客目的 练习题(重要) 面向对象的概念(了解) 面向对象的三大特性(重要) 2016-09-10——13:13:39 ll练习题 用方法调用的形式进行数组排序 1 package Sep10; 2 //调用方法完成两个整形数组的排序并打印 3 public class ArrayRefDemo03 { 4 5 /** 6 * @param args 7 */ 8 public static void main(String[] args) { 9 // T