using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
/* 主方法,函数的入口。
* 从方法的命名来看,java 方法命名是首字母小写,后面每个开头字母大写(小驼峰规则)
* 而C#也类似,只不过是首字母大写(大驼峰)。--就是喜欢和别人对着干
*/
static void Main(string[] args)
{
Student s = new Student("invoker","1010",20,"man");
Console.WriteLine(s);
s.Name = "sfwoegwoegfjodger";
s.sex = "woman"; //没有提供set访问器就会报错。
Console.WriteLine(s);
//仅为了防止控制台闪退
Console.ReadLine();
}
}
class People
{
private string name; //定义字段:在C#中字段用来存储属性的数据。而属性是对外发布数据。
private int age;
/*
* 定义属性:
* public string sex{get;}没有set,该属性是不能够被赋值的。
* public string sex{set;}没有get,该属性是不能够取值的。
* public string sex{}类似 private string sex;
* 那么:
* public string sex; 这是定义字段,就不一样了。没有任何约束(除了修饰词)。
* public string sex{set;get} 这是定义属性。它的访问权限全靠set,get访问器。
*/
//定义属性,虽然是公有成员,当没有set访问器,外界不能修改,该属性,只能访问.同理没get;不能访问。
//如果定义私有属性,get;set;访问器就没有任何意义了。
public string sex { get; set; } //有属性,没有相应的字段C#会自动生成相应的字段。
/* 私有字段,通过相应的属性中的get,set访问器来访问。
* 外部只需要取该公有属性。相当于为name取一个别名
* Name,为外部访问。当然
* get,set里面可以写相关的约束代码,限制通过Name
* 来访问或者修改name。
* 与java中set,get方法相比。C#简化了外部访问私有成员固定的
* 模式getX(),setX()方法。而是通过替代公有属性来访问私有字段成员。
* 另外,java属性和字段没什么区别。
*/
public string Name
{
get { return name; }
set {
if (value.Length < 12)
name = value;
else Console.WriteLine("非法修改");
}
}
//为age字段提供相应的属性,便于外界访问
public int Age {
get { return age; }
set { age = value; }
}
public People(string name,int age,string sex)
{
this.name = name;
this.age = age;
this.sex = sex;
}
}
/*定义一个学生类继承Ojbect类,当然不继承Object会自动继承该类,这点和java类似
* 继承使用":"
*/
class Student:People
{
private string id;
/* C#与java指代的父类不同,C#是base,而java是super.
* 调用父类的构造器也不同,java是写在子类构造器里面,而C#是在
* 子类构造器方法上面
*/
public Student(string name,string id,int age,string sex):base(name,age,sex)
{
this.id = id;
}
/*重写Object里面的ToString方法
*/
public override string ToString()
{
return "<" +Name + "," + id + "," +Age + ","+sex+">";
}
}
}
好久没写博客了,本来一直学习java,而老师硬要我们自学C#。没折就随便学学。不过C#与java极为类似。学习来也不会那么吃力。找到不同点就行了。个人之见,有什么不对的地方,还请谅解!。
1137

被折叠的 条评论
为什么被折叠?



