美文网首页c#程序员.NET
C#3.0面向对象程序设计一

C#3.0面向对象程序设计一

作者: 知识学者 | 来源:发表于2017-12-15 19:13 被阅读43次

文章首发 http://www.imooc.com/article/22105
我还在简书。。。。。。

面向对象三大特征,继承,封装,多态
1.0 封装,通过定义类并且给类的属性和方法加上访问修饰符来抽象事物的本质特征

2.0 继承,一个类可以从它祖先(父类)哪里获得已有的成员和行为。

3.0 多态,程序通过一个一般的父类的引用用来实现在多个子类的方法,即调用方法时,实际被调用的代码和对象的实列有关

c++是通过指针或引用(&,变量别名)实现多态的,和c#不同,java多态实现和c#相同。

类的定义
格式

<类修饰符>class<类名>
{
数据成员;
函数;
嵌套的类型;
}


保护方式
修饰符 说明
abstract 抽象类,即不能创建该类 的实列
internal 该类只能从同一个程序集的其它类中访问。这是非嵌套类型的默认访问类型。如果没有指定修饰符,则该类的默认访问方式为internal
new 只用于嵌套类。它指明该类隐藏一个同名被继承的成员
private 嵌套类。只能在定义它的类中访问
protected 嵌套类,只能成定义它的类和至此派生的类中访问
public 该类的实列可以被 其它任何类访问
sealed 该类不能作为其它类的父类,即该类不能被继承

感觉c# 关键字internal和 java的default差不多(但是不对,我说不清)。
sealed修饰的类不能被继承,在java中可以通过final修饰类实现

类的实列化

和java一样,c sharp中所有的类都看成是 引用类型,与c++不同,如 A a;该语句只是声明了一个指向类的引用,并没有创建一个实际的对象实列

类的成员
类的成员可以分为二大类,一是本身声明的, 二是从父类继承来的。

类成员 说明
成员常量 代表与类相关联的常量值
类中的变量
成员方法 执行类中的复杂计算和其它操作
属性 定义类中的值, 并对它们进行读写操作
事件 说明发生了什么事情

对类的成员访问
在code中,可以对类的成员采用不同的访问符修饰。
1.0 公有成员(public)提供类的外部界面,允许外部访问类。
2.0 私有成员(private)仅仅限于类中的成员访问,如果声明没有出现成员访问,则默认为private。
3.0 保护成员(protected)可以被子类访问,但是对外界封装。
4.0 内部成员(internal)只对同一包或者库成员透明,其它成员禁止访问。

this关键字
在构造函数,类的方法和类的实列中使用。
1.0 在类的构造函数中出现的this,作为一个值类型,表示对正在构造的对象本身的引用。
2.0 在类的方法出现的this作为值类型,表示对调用该方法的对象引用。
3.0 在结构的构造函数中出现的this作为变量类型,表示对正在构造的结构引用。
4.0 在结构的方法出现的this作为变量类型,表示对调用该方法的结构引用。

成员常量
保留字const用于声明常量,后跟数据类型声明,类的常量可以使用new,public,private,public,protected,等修饰。

在java中可以用final实现常量声明。

自己构思一个相关的代码

汗,vs出了点问题,折腾死了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication4
{
    public abstract class Animal
    {
        public string color;
        internal string name;
        protected int height;  //不能被子类继承
                               //抽象方法不能被声明为私有,子类要实现它
        public abstract void printName();

    }

    public class Dog : Animal
    {
        public static string d = "dog";
        public Dog(string name, string color)
        {
            this.name = name;
            this.color = color;
        }

        public override void printName()
        {
            Console.WriteLine("my name is " + name);

        }
        //外部不能访问。只能在dog类中访问
        private void printColor()
        {
            Console.WriteLine("my color is " + color);
        }

        public void printDog()
        {
            printName();
            printColor();
        }

    }

    public class SBC : Dog
    {
        //隐藏一个同名被继承的成员d
        new public static string d = "sbc";
        public void disp()
        {
            Console.WriteLine("sbc d=" + d);
            Console.WriteLine("Dog d=" + Dog.d);
        }
        public SBC(string name, string color) : base(name, color)
        {

        }

    }

    class Program
    {
            static void Main(string[] args)
        {
                Dog dog = new Dog("dog", "black");
                dog.printName();
                Console.WriteLine("----------------");
                dog.printDog();
            Console.WriteLine("----------------");
            SBC sbc = new SBC("sbc", "yellow");
                sbc.printDog();
            Console.WriteLine("----------------");
            sbc.disp();
            Console.Read();

            }
        
    }
}


结果

my name is dog
----------------
my name is dog
my color is black
----------------
my name is sbc
my color is yellow
----------------
sbc d=sbc
Dog d=dog

参考文章:
微软internal
new 修饰符
读《C# 和 Java 的比较》有感

相关文章

  • C#3.0面向对象程序设计一

    文章首发 http://www.imooc.com/article/22105我还在简书。。。。。。 面向对象三大...

  • JavaScript面向对象编程指南--读书笔记(上)

    第一章:面向对象的JavaScript 面向对象的程序设计 面向对象程序设计(oop)中最常用到的概念: 对象、方...

  • 第四章 对象与类

    1 面向对象程序设计概述 面向对象程序设计(简称OOP)是当今主流的程序设计范型 Java是完全面向对象的,必须熟...

  • 《软件工程》笔记7

    面向对象的实现 面向对象的程序设计最好还是选用面向对象的编程语言。 良好的程序设计风格对于面向对象实现来说格外重要...

  • 《Java核心技术卷 I》之 Java对象与类

    Java对象与类 面向对象程序设计 面向对象程序设计,简称OOP,Java语言就是完全面向对象的。 类 类(cla...

  • oc编程思想

    面向对象概念 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一...

  • python面向对象编程

    面向对象编程(一) 1、面向过程程序设计与面向对象程序设计: 面向过程的程序设计把计算机程序视为一系列的命令集合,...

  • JavaSE-面向对象编程

    [TOC] 第一章:面向对象-概述 1.1-什么是面向对象? 概述 面向对象是一种程序设计思想。 程序设计的目的是...

  • 编程语言基础概念1

    什么是面向对象? 面向对象:指在程序设计中采用封装、继承、多态等设计方法。 什么是面向过程? 面向过程:程序设计按...

  • 面向对象

    title:面向对象tags: 基础,Java 面向对象 面向对象程序设计简介 面向对象的基本思想是使用类、对象、...

网友评论

    本文标题:C#3.0面向对象程序设计一

    本文链接:https://www.haomeiwen.com/subject/rjqdwxtx.html