【面向对象】 通俗易懂的面向对象

作者:Itzhipan
当然在看之前,别忘常按点赞,一键三连哦!!!

目录

封装

继承

多态

数据

字段声明

方法声明

访问修饰符

this关键字

Person

Program


 

【面向对象】 通俗易懂的面向对象_第1张图片

面向过程:拿着钱,下楼,去超市,买包米

面向对象:找一个对象,买包米
 
面向对象的特点:封装,继承,多态

封装

对象含有所需的所有信息
好处:减少耦合,类内部实现可以自由修改,类有清晰的对外接口

继承

适用范围:父类和子类is-a关系
作用:继承所有非private方法和属性,protected表示继承时子类可以对基类
有完全访问权,子类可以定义自己的方法或者重写父类方法
好处:公共的代码共享,避免重复和出错
坏处:破坏了包装,类之间形成了强耦合关系

多态

重载:它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后再调用时,VM就会根据不同的参数样式,来选择合适的方法执行。”
(重载就是方法名相同,参数(个数或类型)不同)
 
Console.WriteLine();

对象具有各自的属性特征和功能,是实际存在的类 

可以理解成对象的抽象 或者对象的模板

类创建的变量叫做对象,也叫这个类的实例

每个对象 都有自己的特定的数据和功能

类包含:数据和功能

数据

字段,常量,事件
功能(方法) 
函数提供操作数据功能(方法,属性,构造方法,折构方法,运算符和索引器)

字段声明

访问修饰符 类型 变量名

方法声明

访问修饰符 返回值类型 方法名();访问
非静态方法 用对象名 ,方法名() 访问

访问修饰符

public 公共的 公开的,任何地方都可以访问
private 只能在本类中访问
类中的字段和方法默认的修饰符是private只能在本类中访问

this关键字

this代表当前类的对象
类不占内存,对象占内存

class关键字 自定义类

Person

public class Person
    {
        //自定义了五个字段
        public string name;
        public int age = 0;
        private string addr;
        public float height;
        public float weight;
        public void SetAge(int age)
        {
            if(age < 0)
            {
                Console.WriteLine("你输入了什么?");
                return;
            }
          //  Console.WriteLine("age:=" + this.age);
           this. age = age;
        }
        //功能,三个方法
        public void Eat()
        {
            Console.WriteLine("我叫{0}.在听音乐", name,age);
        }
        public void Drink()
        {
            Console.WriteLine("我叫{0}.在。。", name);
        }
        public void Actionl(string act)
        {
            Console.WriteLine("我叫{0}.我喜欢{1}", name,act);
        }

Program

 static void Main(string[] args)
        {
            //2.声明一个该类型的变量,对象
            Person zhangsan;
            //3.初始化,变量名 = new 类名();
            zhangsan = new Person();
            //对数据操作
            zhangsan.name = "张三";
            zhangsan.SetAge(-5);
            //zhangsan.age = 16;
            //zhangsan.addr = "北京";
            //zhangsan.height = 178;
            //zhangsan.weight = 120;
           
            Console.WriteLine(zhangsan.name);
           
            //调用对象的方法
            zhangsan.Eat();
            zhangsan.Actionl("听音乐");
            Person lisi = new Person();
            lisi.name = "李四";
            lisi.Eat();
            lisi.Actionl("changge");
            Console.ReadKey();    
         }

 

你可能感兴趣的:(面向对象)