1:就是在程序中通过代码来模拟世界中的物品,属性
就是对象具有的各种特征(唯一的)。对象就是一个真实特定的物品。
2:属性-----特征 方法----行为
类是对象共性的体现,类是模版,确定对象将会拥有的特征(属性)和行为(方法);对象的共有属性的体现;
3:类是对象的类型,用类可以声明对象,则对象就会具有该类的属性和方法;类是概念而对象是个实物;【将类的概念和结构体进行比较,这样就很好理解】
4:类的实例化就是用类来声明对象,类不占内存,而对象占内存空间;
5:定义类的语句(类文件以“.cs”结尾)
(访问修饰符)class 类名
{
类的语句成员;
}
*一个类定义在一个.cs文件里面,不要在一个.cs文件中定义多个类。
*类的命名首字母大写;
6:通过类来产生对象就做类实例化
类名 对象=new 类名();
类名 zeSan=new 类名();
则此对象(zeSan)就具有此类的所以的属性和行为。
7:通过“实例名.属性”来进行赋值,而“实例名.方法”来调用显示;
//////////////////////////
1:有关方法加static的说法【重点】
*加static,此方法在main中可以通过“类.方法名”完成调用(“类名.属性或类名.方法”);
*不加static,此方法在main中必须先实例化之后,才能完成调用(“实例名.方法或实例名.属性”);
*这个在内存分配中也有不同;
2:用类进行实例化,他们分别存在不同内存空间里面,这样不管你修改那一个,别的都不会收到影响;
3:
访问修饰符:有4种访问修饰符
*public:可以在任何地方被访问;
*PRivate:只可以在本类中进行访问;(系统默认值)
*preotected:只能在本类和子类中被访问;
*intemal:只能在本项目中被访问;
4:对变量的赋值,可以将字段写为方法来用其进行赋值,外部在进行访问,调用;
5:属性就是定义的public变量中含有get,set的两个方法;
赋值用set方法;取值用get方法;
用户可以在set方法中进行判断,看是否是要求的输入值。
属性就是用来保护私有字段的合法性;
6:只读属性,将set方法删去,只留get方法,则这个属性只能读取,不能写入;
///////////////////////////////
1:当初始化一个类时,若没对其赋值,则系统自动初始化;
String初始化为NULL;
Char初始化为:/0;
2:构造方法的好处
*不需要对多个属性赋值时,不需要重复的写实例名;
*保证用户在new时必须对其进行赋值
*在创建对象时,对只读属性进行初始化
3:定义好类之后,系统就自动定义了一个构造方法,只是我们看不到而已;
4:构造方法
*特点:无返回值,方法名和类名相同;
通过参数来传值,对于一些只读的“名字”“ID”“身份证”等等,都可以通过构造方法来定义来使用它;
//////////////
构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面:
1.构造方法作用:
(1).构造出来一个类的实例 (2).对构造出来个一个类的实例(对象)初始化。
2.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
3.主要完成对象的初始化工作,构造方法的调用是在创建一个对象时使用new操作进行的。
4.类中必定有构造方法,若不写,系统自动添加无参构造方法。接口不允许被实例化,所以接口中没有构造方法。
5.不能被static、final、synchronized、abstract和native修饰。
6.构造方法在初始化对象时自动执行,一般不能显式地直接调用.当同一个类存在多个构造方法时,java编译系统会自动按照初始化时最后面括号的参数个数以及参数类型来自动一一对应。完成构造函数的调用。
7.构造方法分为两种:无参构造方法 有参构造方法
构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。
8.构造代码块:
(1)作用:给对象进行初始化,对象一建立就执行,而且优先于构造函数执行
(2)构造代码块和构造函数的区别:
构造代码块是给所有不同对象的共性进行统一初始化,构造函数是给对应的对象进行初始化
9.子类继承父类中,
***子类的实例化过程
***构造方法不能被子类继承
***子类创建对象时,会先去创建父类的对象。
默认是去调用父类的无参构造方法。
***子类构造方法中,第一行默认是super()
***为什么子类中第一行会默认有super()
因为他继承父类的成员使用,使用前这些成员必须初始化,
而他们是父类的成员,所以,必须通过父类进行初始化。
所以,会先创建一个父类的对象。
**当父类没有无参构造方法时
必须使用this或者super调用其他的构造方法。
10.自定义类中,如果不写构造方法,java系统会默认添加一个无参的构造方法。如果写了一个有参的构造方法,可以不用写无参构造方法。
如果想使用无参的构造方法,就必须手动给出无参构造方法。
建议:一般情况下,我们自定义的类都要手动给出无参构造方法
////////
1:要实例化一个类,必须要调用它的构造方法;而且构造方法可以有多个参数;
2:构造方法可以重载,也可以有多个参数的构造方法;
3:类图
4: 析够函数(GC垃圾回收器收垃圾时调用的方法)
*一个类中只能有一个析构函数;
*无法继承和重载
*无法主动调用,因为他们是自动调用的;
5:要想抛异常语法
Throw new exception(“提示异常”);
1:任何类型都可以转到object类型;可以通过转到定义了查看自己的变量调用了那个函数;
2:console.writeline();是函数的调用;
3:(可变数组)数组前面加params可以往数组中直接添加元素,每个元素之间用逗号相隔;
4:params 关键字可以指定在参数数目可变处采用参数的方法参数。在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
************命名空间***********
1:类的文件夹:命名空间(namespace)
*主要用于解决类的重名问题;
*相当与文件夹的形式,好理解;
2:不同命名空间下的调用.访问
*写全称 命名空间.类名
*先using引用命名空间,再调用;
3:类的访问只能访问自己命名空间下的类;不能访问不同命名空间下的类,要访问需要引用“using.命名空间名”
4:所有的命名空间都在system的命名空间下,命名空间下可以定义其他的命名空间;system为根命名空间;
5:命名空间可以命名为自己公司的名字,为了以后代码的重复定义;
/////
1:c语言里面用char数组来存储字符串的,而在c#中用string来定义字符串,其实也是在数组中存储的,字符串可以看成是数组; 【string是个特殊的类型】
2:字符串一旦声明赋值,就无法对其改变,应为他是只读的;(不可变性)
3:类的方法
如何修改string的值
String s=”hello Word”;
Char[ ] chars=s.ToCharArray( );
S=new string (chars);
Console.writeline(S);
4:方法表示行为,属性表示状态;
*******
写的比较乱,没有章法.主要是想以后复习这些知识时方便.
*******
新闻热点
疑难解答