23>>类的字段
一个变量一旦定义在方法外,类的里面,就叫做类的字段。这个变量可以被本类中所有的方法访问,但需要注意的是:静态方法只能访问静态字段。(由const修饰的常量不能定义为静态的)。
23>>方法重载
一般在同一个类中,方法名相同,并且方法的参数个数不同或对应位置上的类型不同,才能构成方法重载。(注意:方法重载和返回值没有关系)
1 public static int Max(int i1,int i2) 2 { 3 if(i1>i2) 4 { 5 return i1; 6 } 7 else 8 { 9 return i2; 10 } 11 } 12 public static int Max(double i1,double i2) 13 { 14 If(i1>i2) 15 { 16 return i1; 17 } 18 else 19 { 20 return i2; 21 } 22 }
24>>类
属性:对象具有的各种特征,每个对象的每个属性都有特定值。
类:类是模子,确定对象将会拥有的特征(属性)和行为(方法)。
类是对象的类型
对象可以叫类的实例
类不占内存,对象才占内存。
定义类的语法:
[访问修饰符] class 类名
{
成员;
}
类中可以包含变量的定义与方法。在我们自己写的类中我们在写方法时,先不用加static。
类的实例化用关键字new 语法:类 实例名 = new 类();
类的成员的访问:实例名.属性 实例名.方法
只要是没有static修饰的方法和属性,都必须先实例化;在通过实例名.方法名或实例名.属性来访问。加static的方法或属性,可以直接通过类名.方法或类名.属性名来访问。
25>>构造方法
构造方法的好处:
1、 对多个属性赋值时不需要重复写实例名
2、 可以保证用户在new一个对象时候必须对某一个属性进行赋值
3、 和2类似,在创建对象时,对只读属性进行初始化
当我们定义好一个类后,如果我们没有写构造方法,那么系统会给我们加上一个默认的没有参数的构造方法,在这个方法中什么都不做,我们也什么也看不到
我们可以定义一个构造方法:
构造方法是一个特殊的方法,他的名字和类的名字相同,并且没有返回值,连void都可以省略。我们一旦手写构造方法后,原先系统默认给我们添加的那个无参的构造方法就不会为我们再添加了。
例外:要想拋一个异常,可以这样写:
throw new Exception(“信息错误”);
26>>属性
什么叫做属性:通俗点讲,就是定义一个Public具有get/set方法的变量,这个变量就是用于保护一个私有变量。
属性是为了保护与之相对应的字段的,保证对字段的读取和赋值符合要求。
允许外部访问的变量一定要声明为属性。
三种属性:读写属性、只读属性、只写属性。
1 Private int age; 2 Public int Age 3 { 4 get 5 { 6 return age; 7 } 8 set 9 { 10 If(value>0) 11 { 12 age = value; // 这里有一个关键字value,用来存储用户赋的值 13 } 14 else 15 { 16 age =0; 17 } 18 } 19 } 20 Zsperson.Age = 18;//调用set 21 Int aaa = zsperson.Age;//调用get
27>>get{return 字段;} set{字段=value;}
其实就是属性。属性可以使外部程序访问你的私有字段(前提是你的属性是公有的)。但属性最大的作用是,可以在get和set里面对字段进行一些处理,包括判断范围和求值等处理。这样可以保证数据的正确性并且保证你在外面读取的值是正确的且及时。或者可以说属性最重要的作用是做只读属性或只写属性,这个是最有用的。控制字段的读写,保证程序的正确性。
1 private int ss; 2 public int SS 3 { 4 get 5 { 6 return ss; 7 } 8 set 9 { 10 if(value > 0) 11 ss = value; 12 } }
这就是一个简单的属性。就是在设置值的时候,如果你设置值是小于0的话,就不会进行赋值操作的。只有是大于0的值才会赋值给ss。如果是只读属性的话,就是只有get,没有set,如果是只写属性的话,就只有set,没有get。