面向对象的几个概念性问题

using System;

using System.Collections.Generic;

using System.Text;

 

namespace oop

{

    class Person

    {

        public string name;

        public int age;

 

        /**

         * static修饰的字段

         *

         * static修饰的字段,它们属于类,而不属于类的某一个实例,

         * 也就是说,在调用静态字段时,只能通过类名来调用,(Person.sex)

         * 而不能通过类的某一个实例来调用,而不是(Person person = new Person();person.sex)

         * 2.

         * 如果方法被声明为静态的,也是如此

         */

 

        public static string sex;

 

        /**构造方法

         * 特点:

         * 1.与类名相同

         * 2.构造方法一般被声明为public

         * 3.构造方法一般用来初始化成员变量

         * 4.构造方法可以重载

         * 5.构造方法在实例化对象的时候被调用

         * 6.如果类中没有默认构造方法,也没有带参数的构造方法,编译时,将会自动添加一个默认构造方法,

         * 7.如果类中有带参数的构造方法,而没有默认构造方法,则编译器不会再添加默认构造方法,

         * 8.默认构造方法也叫无参构造方法

         */

 

        public Person()

        {

        }

 

        public Person(string name, int age)

        {

            /**

             * this

             * this代表类的实例.

             * 如果一个字段或者方法被声明为static,则不能用this来调用,因为static声明的字段或者方法属于类,

             * this代表的是类的实例(:this.sex是错误的)

             */

            this.name = name;

            this.age = age;

 

        }

        /**

         * 方法的重载

         *

         * 重载的特点:

         * 1.方法名都要相同

         * 2.方法的可以参数不同,返回值可以不同,方法的访问权限可以不同,方法参数不同的几种情况如下:

         *

         * 重载的几种情况:

         * 1.参数的类型不同

         * 2.参数的个数不同()

         * 3.参数的顺序不同(参数的列表不同 在C# ,这种情况没有实际使用价值)

         * 4.返回类型不同

         * 5.访问修饰符不同

         */

 

        public void GetInfo()

        {

            Console.WriteLine("这个是无参的方法");

        }

 

        public void GetInfo(string name)

        {

            Console.WriteLine("姓名是:" + name);

        }

 

        public int GetInfo(int age)

        {

            Console.WriteLine("年龄:" + age);

            return age;

        }

 

        internal void GetInfo(int age, string name)

        {

            Console.WriteLine(" 年龄: " + age + "姓名:" + name);

        }

 

        public void GetInfo(string name, int age)

        {

            Console.WriteLine("姓名:" + name + " 年龄: " + age);

        }

 

        /* static修饰的方法

         *

         * 1.static修饰的方法中,不能用this关键字来调用实例字段

         * 2.static修饰的方法中,也不能直接调用实例字段,如果要调用这些字段,

         *    要先实例化对象( Person p1  =new  Person();p1.age=2;)

         * 3.静态方法中,可以类名调用静态方法

         */

        public static void StaticInfo()

        {

            Console.WriteLine("这个方法是一个静态方法");

        }

        /**

         * 析构函数

         *

         * 特点:

         * 1.析构函数前有一个"~",表明是一个析构函数

         * 2.析构函数的函数名和类名相同

         * 3.一个类只有一个析构函数

         * 4.析构函数没有参数

         * 5.析构函数没有返回值

         * 6.析构函数没有访问修饰符

         * 7.析构函数不能重载

         * 8.析构函数不能实现继承

         * 9.析构函数是用来清理垃圾的(:用来清除不再使用的对象)

         * 10.析构函数不用手动调用,而是由垃圾回收器自动调用

         *

         */

        ~Person()

        {

 

        }

 

    }

    class Program

    {

        static void Main(string[] args)

        {

            Person p = new Person();

 

            p.GetInfo();

            Console.WriteLine("/n");

 

            p.GetInfo("sofie");

            Console.WriteLine("/n");

 

            p.GetInfo("sofie", 21);

            Console.WriteLine("/n");

 

            p.GetInfo(21, "sofie");

            Console.WriteLine("/n");

 

            int a = p.GetInfo(12);

            Console.WriteLine(a);

        }

    }

}

 

 转自:

http://blog.163.com/pengpeng_614/blog/#m=0&t=1&c=fks_087067093083088069093095086095085081086067083087080074

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值