C#之面向对象(一)------类和对象

类是具有相同或相似特征(属性)和行为(方法)的对象集合。

定义如下:
namespace 面向对象{
    //定义类:访问修饰符 + class + 类名
    //如果未加访问修饰符,则默认为internal
    //学生类
    calss Student{

    }
    //教师类
    public class Teacher{

    }
}

对象

对象是用来描述客观事物的一个实体,是构成系统的一个基本单位。
万物皆对象
定义如下:
namespace 对象{
    class Programs{
        static void Main(string[] args){
            //通过上面的学生类来创建一个学生对象
            Student stu = new Student();
            //通过上面的教师类来创建一个教师对象
            Teacher tea = new Teacher();
        }
    }
}

对象和类的关系

对象是类的实例化,类是对象的抽象,如同模具跟铸件的关系。

字段和方法

字段:
    是直接在类或结构中声明的任何类型的变量
    访问修饰符+数据类型+_字段名;
方法:
    把一些相关的语句组织在一起,用来执行一个任务的语句块
    访问修饰符+返回值类型+方法名
namespace 面向对象{
    //学生类
    calss Student{
        //类中包含属性和方法
        //创建学生类的字段
        //字段可以在Student类中直接调用
        public string _name;   //姓名
        public int _age;       //年龄
        public char _sex;      //性别
        public int _strId;     //学号
        public float _score;   //成绩
        //创建学生类的方法
        public void Study()
        {
            Console.WriteLine(_name + "爱学习");
        }
        public void Rest()
        {
            Console.WriteLine(_name + "爱休息");
        }
        public void Shopping()
        {
            Console.WriteLine(_name + "爱购物");
        }
        public void Play()
        {
            Console.WriteLine(_name + "爱玩");
        }
        public void Sleep()
        {
            Console.WriteLine(_name + "爱睡觉");
        }
    }
}

调用字段和方法

namespace 面向对象{
    class Programs{
        Student stu = new Student();
        //通过创建的对象来调用类里面的方法和属性
        stu._name = "小明";
        stu._age = 18;
        stu._sex = "男";
        stu._stuId = 156666666;
        stu._score = 100;

        stu.Study();
        stu.Rest();
        stu.Shopping();
        stu.Sleep();
        stu.Play();
    }
}

构造方法

构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。
对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。
当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。

运用构造函数来求解长方形的面积和周长:

namespace 面向对象
{
    //长方形类,用来计算长方形的面积和周长
    class Rectangle
    {
        //构造方法的重载
        //0 个参数的构造函数
        public Rectangle()
        {
            _chang = 1;
            _kuan = 1;
            Console.WriteLine("长为:{0},宽为:{1}的长方形", _chang, _kuan);
        }
        //一个参数的构造函数
        public Rectangle(int a)
        {
            //长和宽都为传入的参数
            _chang = a;   
            _kuan = a;
            Console.WriteLine("长为:{0},宽为:{1}的长方形", _chang, _kuan);
        }
        //两个参数的构造函数
        public Rectangle(int chang,int kuan)
        {
            //长和宽分别为传入的两个参数
            _chang = chang;
            _kuan = kuan;
            Console.WriteLine("长为:{0},宽为:{1}的长方形", _chang, _kuan);
        }
        public int _chang;      //记录长方形的长
        public int _kuan;      //记录长方形的宽
        //计算面积的函数
        public void Area()
        {
            int area = 0;
            area = _chang * _kuan;
            Console.WriteLine("面积为:" + area);
        }
        //计算周长的函数
        public void Cir()
        {
            int cir = 0;
            cir = 2 * (_chang + _kuan);
            Console.WriteLine("周长为:{2}", _chang, _kuan, cir);
        }
    }
}

在main方法中调用并运行

namespace 面向对象
{
    class Program
    {
        static void Main(string[] args)
        {
            Rectangle r1 = new Rectangle();
            r1.Area();
            r1.Cir();
            Console.WriteLine();
            Rectangle r2 = new Rectangle(3);
            r2.Area();
            r2.Cir();
            Console.WriteLine();
            Rectangle r3 = new Rectangle(4, 5);
            r3.Area();
            r3.Cir();
        }
    }
}

这里写图片描述

练习

1.定义一个计算器类,包括加、减、乘、除运算。
2.试编写Java代码实现一个计数器类Computer其中包括:
    域value :用来保存计数器的当前值;
    方法increment(): 计数器加一;
    方法decrement() :计数器减一;
    方法reset():计数器清零;

1.计算器类

namespace 面向对象
{
    class Calculator
    {
        public Calculator(float one,float two)
        {
            _numOne = one;
            _numTwo = two;
        }
        private float _numOne;
        private float _numTwo;
        public void Plus()
        {
            Console.WriteLine(_numOne+"+"+_numTwo+"="+(_numOne + _numTwo));
        }
        public void Minus()
        {
            Console.WriteLine(_numOne + "-" + _numTwo + "=" + (_numOne - _numTwo));
        }
        public void Multiplication()
        {
            Console.WriteLine(_numOne + "*" + _numTwo + "=" + (_numOne * _numTwo));
        }
        public void Divide()
        {
            Console.WriteLine(_numOne + "/" + _numTwo + "=" + (_numOne / _numTwo));
        }
        public void Mod()
        {
            Console.WriteLine(_numOne + "%" + _numTwo + "=" + (_numOne % _numTwo));
        }
        public void Result()
        {
            Plus();
            Minus();
            Multiplication();
            Divide();
            Mod();
        }
    }
}

2.计数器类

namespace 面向对象
{
    class Computer
    {
        public Computer(int value,int count)
        {
            _value = value;
            _count = count;
        }
        private int _value;     //计数器的域
        private int _count;     //运行的次数
        //计数器加一
        public void Increment()
        {
            for (int i = 0; i < _count; i++)
            {
                ++_value;
            }
            Console.WriteLine(_value);
        }
        //计数器减一
        public void Decrement(){
            for (int i = 0; i < _count; i++)
            {
                --_value;
            }
            Console.WriteLine(_value);
        }
        //计数器清零
        public void Reset()
        {
            _value = 0;
            Console.WriteLine(_value);
        }
    }
}

主函数

namespace 面向对象
{
    class Program
    {
        static void Main(string[] args)
        {
            Calculator cal = new Calculator(4, 8);
            cal.Result();

            Computer com = new Computer(10,5);
            com.Increment();
            com.Reset();
        }
    }
}

运行结果:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_29266497/article/details/80895688