面向对象思想

1、基本概念

1.1 类和对象初探

:描述了具有相同特性(属性)和相同行为(操作方法)的对象。在程序中,类就是数据类型。

1.2 内置数据理性与函数

计算机在存储数据时必须跟踪3个基本属性:

1)        信息存储在何处;

2)        信息的值是多少;

3)        存储的信息是什么类型的。

变量:在值上可以发生变化的量;常量:不发生变化的。

函数:实现某种功能的黑匣子。1、我传给你的是什么信息;2、你对信息做了哪些处理;3、你返回给我的信息是什么。

Eg:

int fnAddNum(int a,int b)

{

         returnx+y;

}

:return的含义是向调用者返回紧跟在他后面的信息

2、深入讨论面向对象

2.1 类型的内部细节

面向对象的编程语言的最大特点是可以根据需求编写自己所需的数据类型。

对象 具有 类 所描述的属性和方法。

(电视机具有电视原理图 所描述的属性和方法)

类是属性与方法的集合。而这些属性和方法可以定义为private,public或者是protected。

为了实现数据的封装,提高数据的安全性,我们一般会把类的属性申明为private,而把类的方法申明为public。

Eg:

//员工类

public class Employee

{

         privatestring name;

         privateage int;

         privatechar sex;

         publicvoid setName(String strName)//修改员工的姓名

         {

                   name=strName;

         }

         publicstring getName()//获取员工姓名

         {

                   returnname;

         }

}

修改姓名《—setName()《—getName()

Init()方法是完成初始化操作的;

Start()是用来启动浏览器的主线程;

Paint()是用来显示Apple的界面。

每位员工(对象)都有一份午饭(属性),但所有的员工(对象)只有一个微波炉(方法)。所有的员工(对象)都可以用这个微波炉(方法)来加热自己的午饭(属性)的冷热。为此,方法只有一份,供所有的对象使用,而属性是每个对象一份。

2.2 深入讨论函数

2.2.1 构造函数

构造函数是对属性的初始化。

特征:

是唯一没有返回值的函数;

它的名称必须要与类名称相同;

它必须被申明为public;

可以对它进行重载;

它在创建对象时会进行自被调用。

功能:

对类中的属性进行初始化。

Eg:

//员工类

public class Employee

{

         privatestring name;

         privateage int;

         privatechar sex;

         //构造函数

         publicEmployee(string strName,int intAge,char chrSex)

         {

                   name=strName;

                   age=intAge;

                   sex=chrSex;

         }

}

如何创建呢:lucy=new Employee(“Lucy”,14,’M’)

2.2.2 重载构造函数

1、函数重载是一个类中申明了多个同名的方法,但有不同的参数个数和参数类型。

2、函数重构是指子类中申明与父类中同名的方法,从而覆盖了父类的方法。

1、重载

Eg:

int intA,intB,intC;

intA=10;

intB=20;

intC=intA+intB;

string strA,strB,strC;

strA="Hello ";

strB="World";

strC=strA+strB;

说明:同一个操作符“+”,实现了不同的功能。-------操作符重载

2.2.3 初始化与赋值

         初始化与赋值是两个不同的概念。

把一个变量或者函数申明为static(静态),其目的是为某个类的所有对象的属性或方法分配单一的存储空间。

静态变量是属于类的,所有的对象都可以通过方法去修改它,而下一次修改是基于上一次的。

静态函数也是属于类的,调用的时候可以使用类名直接调用。

2.3 继承(C#:,Java:extends)

代码重用

子类拥有父类所拥有的方法和属性。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 实现地图天气预报的显示

    概述:很多时候,会用到地图与天气预报的相结合显示,本文结合web天气插件,实现地图天气预报的结合现实。

    lzugis
  • CSS学习笔记

    <linkhref="*.css" rel="stylesheet" type="text/css"/>

    lzugis
  • 大量POI点展示的一种解决方案

    不论是在Arcgis for js还是Openlayers中,当POI点比较多的时候,在前台页面的展示在效率上是一大问题。经过一段时间的研究,发现百度地图在这一...

    lzugis
  • POJ 刷题系列:1573. Robot Motion

    题意: 一张地图包含N,S,W,E的指令,从指定起点[1, p]出发,是否有一条路径能够走到地图边缘,有则输出路径数,无说明走入了死循环,输出走入循环前和循环...

    用户1147447
  • java基础第十三篇之Collection

    常见的几种数据结构: * 1.堆栈:先进后出 * 2.队列:先进先出 * 3.数组:查找快,增删慢 * 4.链表:查找慢,增删快 imp...

    海仔
  • 【算法与数据结构专场】BitMap算法基本操作代码实现

    上篇我们讲了BitMap是如何对数据进行存储的,没看过的可以看一下【算法与数据结构专场】BitMap算法介绍

    帅地
  • 【剑指offer】二维数组中的查找

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    韩旭051
  • POJ 刷题系列:1840. Eqs

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/...

    用户1147447
  • Spring 详解(二)------- AOP关键概念以及两种实现方式

    当我们为系统做参数验证,登录权限验证或者日志操作等,为了实现代码复用,我们可能把日志处理抽离成一个新的方法。但是这样我们仍然必须手动插入这些方法,这样的话模...

    海向
  • Java第二周学习

    数据类型: 告知编译器,当前数组中能够保存的数据类型到底是什么?并且在确定数据类型之后,整个数组中保存的数据类型无法修改!!! []:

    用户7073689

扫码关注云+社区

领取腾讯云代金券