形式参数的问题:如果是基本数据类型,形式参数的改变对实际参数没有影响;如果是引用类型,形式参数的改变会直接影响实际参数。
局部变量可以将成员变量隐藏掉,Java中提供了一个关键字:this:其代表当前类的对象,或者是(当前类对象的引用)解决局部隐藏了成员变量
类的组成中有一个成员(成员方法的定义)1,按返回值划分:void的形式:没有具体的返回值
非void形式:有具体的返回值
2,参照参数进行划分:有参;空参
匿名对象就是创建对象的时候没有名字的对象,在实际开发中只使用一次,不要多次使用(可能会造成一个内存溢出的现象)
:Java提供了关键字:private:私有的
private:体现的也是一种封装思想
封装:标准类的写法,将成员变量全部私有化,被private修饰的成员变量只能在本类中访问,可以通过公共的访问方法去访问成员变量
private的用法:1,被其修饰只能在本类中访问,2,可以通过公共的public去间接访问
当前成员变量和局部变量一致的情况,遵循就近原则
static:多个对象对同一个变量进行共享这时候用Jave中的关键字static(静态的,共享的)在方法区中开辟一个静态区域:都是静态标记
1,静态随着类的加载而加载
2,static优先于对象存在:main public static void main(..){...};
3,static共享数据,可以被多个对象进行共享
4,如果数据是被静态修饰的,它可以被类名直接调用,被静态修饰的方法:类名.方法名()
被静态修饰的变量: 类名.变量名;
static的用法:一个类中可以有静态变量,也可以有非静态变量,
可以有静态成员方法,也可以非静态的成员方法
非静态的方法,既可以访问静态变量也可以访问非静态变量(静态只能访问静态)
成员变量和局部变量的区别
1)在类中位置不同
成员变量:类中,方法外
局部变量:方法声明上,或者再方法定义中
2)在内存中的位置不同:
成员变量:堆内存
局部变量:栈内存
3)生命周期不同:
成员变量:成员变量是随着类的加载而加载,随着类的消失而消失
局部变量:随着方法的调用而存在,随着方法调用完毕而消失
4)初始化值不同
成员变量:初始化由系统默认初始化,
对于成员变量,可以不给初始化值,由系统给,然后显示初始化;
局部变量:定义一个局部变量,必须进行初始化,如果不初始化,无法使用(在使用之前进行初始化)行初始化)
构造方法作用:给对象进行初始化
构造方法属于一类的成员:成员变量、构造方法(1、方法名和类名相同 2、构造方法,连void都没有)、成员方法
构造方法的注意事项:
1)之前没有写无参构造,系统会默认提供无参构造
2)如果我们无参构造或者有参构造,系统不会在提供无参构造;定义一个类的时候,永远给出无参构造;
构造方法是可以重载的: