Java自习室(类与对象)
1、类的定义语法:
[修饰符] class 类名{
[属性声明]
[方法声明]
}
对象的创建语法 :
<对象类型> <对象名称> = new <对象类型> ([参数列表]);

2、类中的成员变量和局部变量:
在java中,声明并使用变量的时候要遵守一个规则,就是变量的只能在其作用域里面有效.
成员变量:在类中声明,能在类中任何地方进行访问.
局部变量:在一丽倘劣个方法内部或者一段代码块中声明,同理也只能在对应的方法和代码块中使用,超出这个区域则访问无效.
注意点:成员变量在声明时可以不进行赋值,但是局部变量在声明时候必须赋初值不然会报错.

3、类成员方法的定义和调用:
定义的语法格式:
[修饰符] <返回的类型> <方法名>([参数列表]){
[方法体]
}
调用格式:
对象实例.方法名([参数列表]);

4、方法的参数传值:
如果在定义方法的时候使用了参数,那么在调用方法的时候也要进行相应的参数传递,按照参数的传递分为以下两种:
按值传递:当传递类型为基本类型时候如int,double,float等此方法不会改变参数的值.
按引用传递:当传递类型为引用传递的时候如对象,数组此方法会改变参数的值.


5、方法的重载:
是当同一个类中有多个方法具有相同的名字而具有不同的参数时产生的.
方法重载需要满足以下条件:
方法名称相同
方法的参数类型,个数,顺序至少有一项不同
方法的返回类型可以不相同
方法的修饰符可以不相同

6、构造方法:
当实例化一个类的对象时,java最自动调用该类的构造方法,在一个类中可以有多个构造方法,他们的方法名相同.
构造方法的作用:
在创建对象的时候,构造方法可以负责对象成员的初始化,如果对成员属性的赋值.
构造方法的语法:
[构造方法的修饰符] <类名>([参数列表]){
[方法体]
}
注意点:
构造方法修饰符不能是static,final,syncnronized,abstract,native
方法就是类名且必须是类名
构造方法没有返回值

7、默认构造方法:
就是一个无参的方法.
创建类的实例是通过构造方法来完成的,但是允许在类中不显示地定义构造方法,此时java会自动提供一个默认的构造方法,以便在创建对象时候进行调用.
默认的构造方巨捕法会将所有的实例变量初始化成默认值,例如数字型的变量会设置成0,布尔型会设置成false,而引用类型的变量会设置成null.
注意点:
只有在类中没有显示定义任何构造方法时,系统才会提供并调用默认的构造方法.
如果在类中显示定义了一个构造方法,系统则不会使用默认的构造方法.
如果在类中定义了很多个构造方法,而又希望在实例化对象调用默认构造方法,就必须在类中定义默认构造方法.

8、this关键字
this的惯例用法:
在一个类中,当调用构造方法实例化对象时,如果局部变量名和类的成员属性名称相同,则需求用this关键字来区分,然后java编译的时候会犯二.
在一个构造方法中,通过this关键字调用所属类的另外一个构造方法.
在一个实例方法中,通过this关键字访问当前实例的引用.

9、构造方法重载
在java中,允许在一个类中定义多个构造方法,在创建对象时,系统会自动根据所调用的构造方法中包含的参数类型,虚诸个数,选择匹配不同的构造方法创建对象.
注意点:
在构造方法中使用this关键字时,必须作为构造方法中的第一条语句
只能在构造方法中使用this关键字来调用所属类的其他构造方法

10、static修饰符和main方法
static既可以修饰类的成员属性也可以修改类的成员方法.
static修饰的成员属于类成员,其他属于实例成员
静态成员有如下特点:
静态成员在类中只有一份被共享,随类加载时候主动加载到内存中,和类具有同样的生命周期.
静态成员可以通过类名直接访问或者用实例来访问
实例成员有如下特点:
每个实例都有不同的实例成员,他们直接是独立的,它的生命周期随着实例变化.
实例成员必须通过类实例来进行访问
static修饰的方法是类方法,在静态方法中不能访问实例变量和实例方法,静态方法可以通过类名或者实例直接访问.
main方法是java的入口方法,在main方法中不能直接访问实例变量和实例方法,必须通过创建类实例来进行访问.
