您的位置:首页 > 其它

面向对象基础知识点

2016-12-16 00:08 148 查看
    oop:面向对象,全程叫object oriented programming

    面向对象的三大特性:1.封装

                    2.继承

                    3.多态

  

    类的定义:实际上就是具有相同属性和特征的一类事物的抽象集合.

   类和对象的关系:类是对象的抽象,对象是类的实例.

    对象的定义:抽象类的实例.

    

  

    //小例子

    昨天,我去了工商银行去办银行卡,在我前面有五十个人.

  

   香港著名歌星张学友来上海拍广告.

  

    菜市场进了一批蔬菜,然后张三去买菜,问老板,都有什么菜呢?老板说,有茄子,黄瓜,藕等等.

    

 

    1.知道了类的定义,如何定义类?

      使用系统关键字

        (访问修饰符internal)class + 类名{

      

      }

      注意一点:类和类之间属于同级关系

    2.如何描述类的特征

      叫字段或者类成员变量

      字段和普通局部变量的区别:

      局部变量没有初始化,访问该局部变量时编译会不通过.但字段可以

 

    3.实例化对象

      采用系统关键字new + 类名()

      new关键字的作用:

    

    4.如何描述类的行为

      叫方法或者函数

      语法格式:修饰词 + 函数返回值 + 函数名(方法名)(形参列表)

       {

        方法体(函数体);

       }

 

    5.修饰符()

    public:公开的意思,常用语修饰类,修饰类字段,修饰类中方法

            就是非本类之外也可以访问.

    private:私有的意思,常用语修饰字段,方法.也是我们c#语言中默认的修饰符.

            就是只有本类才可以访问.

    internal:程序集内部可以访问

    protected:基类&&派生类可以访问

      

    6.方法的返回值

    如果方法有返回值,就返回方法的实际类型的返回值,关键字return + 返回内容;

    如果方法内存在多个return语句,值返回第一个return语句块,剩下的不会执行.

    如果方法没有返回值,可以省略return不写,直接写方法体内的方法快即可.

 

    四种方法:

    有参有返回值

    有参无返回值

    无参有返回值

    无参无返回值

    7.枚举变量

   格式:enum + 枚举名称

     {
     枚举变量1,
     枚举变量2,
     枚举变量3

     }

     8.构造函数(重点掌握)

       构造函数的作用:让一个类更完整.

       构造函数其实就是用来创建对象,初始化字段用的

       构造函数的语法格式:修饰符 + 类名()

       {
        

       }

       构造函数的特点:

      1.构造函数压根就没有返回值

       2.构造函数的名称必须与类名保持一致

       3.构造函数支持方法重载,换句话说就是可以有多个构造函数,但是参数个数必须不相同.

       4.构造函数无法进行手动调用(系统自动调用)

       5.如果类中不包含构造函数,那么系统会自动的为该类添加一个无参数的构造函数

       6.如果类中存在带有参数的构造函数,那么系统不会为该类添加无参的构造函数.那么

         此时创建对象,必须使用带有参数的那个构造函数

using System;

namespace OOP
{
//定义枚举
enum Gender
{
男,

}

//定义了一个人类
class Person
{
//特征
//名字
public string name;
//年龄
public int age;
//性别
// public string gender;
//性别枚举
public Gender gender;

//行为1----吃
public void Eat(string foodName){
Console.WriteLine ("{0}在吃{1}", name, foodName);
}

//行为2----打招呼
public string SayHi(){
return "我是" + name + ",大家好吗?";
}

//拼接字符串
public string Pinjie(string str1,string str2)
{
return str1 + str2;
}

//返回最大的值
public int ReturnMaxValue(int num1,int num2){
return num1 > num2 ? num1 : num2;
}

//求和1~n
public int Sum(int n){
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;

}
return sum;

//递归算法求和
// if (n == 0) {
// return 0;
// } else {
// return n + Sum (n - 1);
// }
}

//构造函数
public Person(){
Console.WriteLine ("构造函数被调用!~");
}
//

//this关键字:代表这个类的这个对象
public Person(string name,int age){
this.name = name;
this.age = age;
}

}

class MainClass
{
// static int a;
// public static void Main (string[] args)
// {
//报错原因:局部变量没有被初始化
// int a;
// Console.WriteLine (a);

//没有报错原因,因为此时a变量为类的成员也就是字段
// Console.WriteLine (MainClass.a);

//实例化人类对象
//此时的p就是对象Instance
// Person p = new Person ();
// p.name = "马志蛇";
// p.age = 18;
// p.gender = "X";
// p.Eat ("屎");
// string s = p.SayHi ();
// Console.WriteLine (p.SayHi ());
//
// Person p1 = new Person ();
// p1.name = "黄海";
// p1.age = 19;
// p1.gender = "XXY";
// p1.Eat ("马志蛇吃剩下的屎");
//
// if (p == p1) {
// Console.WriteLine ("p和p1为同一对象!");
// }

//课堂练习
//1.编程定义一个方法,功能是把两个字符串进行拼接,得到一个新的字符串;
// Console.WriteLine(new Person().Pinjie("中国","我的母亲"));

//2.定义一个方法,比较两个int类型的数据,得到其最大值;
// Console.WriteLine(new Person().ReturnMaxValue(10,9));

//3.编写方法int SumValue(int n);计算1~n的和;
// Person p = new Person ();
// Console.WriteLine (p.Sum (5));

//枚举演示:
//访问枚举变量是用枚举名.的方式调用
//在unity中,枚举常用来判断游戏状态(游戏开始,游戏暂停,游戏结束)
// Person p = new Person();
// p.name = "刘德华";
// p.age = 55;
// p.gender = Gender.男;
// Console.WriteLine ("性别是:{0}",p.gender);

//构造函数演示
// Person p = new Person();
// Person p = new Person("刘德华",55);
// Console.WriteLine (p.name);

// Person p1 = new Person ();

}
}

         
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: