1.成员变量和局部变量的区别
2.形式参数如果现在是一个类(除了String类),它作为形式参数有什么特点
3.在一个学生类中,给学生的年龄属性赋值—赋值为负数----不合理------封装
4.一个标准类写法:
属性私有化,对外提供公共的访问方法
5.this 关键字
1.局部变量和成员变量的区别:
1.在类中的书写的位置是不同的
局部变量:方法定义中或者方法声明上
成员变量:类中,方法外
2.内存中的位置是不同的
局部变量:栈内存中,与方法有关
成员变量:内存是堆内存中,与对象有关
3.生命周期不同
局部变量:随着方法的调用而存在,随着方法的调用结束而消失
成员变量:随着对象的创建而存在,等待垃圾回收器回收而消失
4.初始化不同
局部变量:必须要在使用之前赋值,不赋值就报错
成员变量:不用初始化,系统默认赋值(int--0;double---0.0;String----null)
数组和对象都是在堆内存中存在的,都可以通过数组与数组(或者对象与对象)之间的赋值(他们之间的赋值实际上是将其地址值赋给了另一个)而间接的改变原来数组(或者对象)中元素的值
不同的栈内存指向同一个堆内存
形式参数如果是应用类型(类作为参数)
如果形式参数是引用类型:自定义类,传递的时候,实际参数需要的是当前类的具体对象
public void method(Student student) //自定义类作为形式参数
传递的是该类的对象(也就是一个空间地址值)
匿名对象
匿名对象:没有名字的对象
匿名对象的格式:
new 类名();
特点:
1.匿名对象:使用完毕,会立即被垃圾回收器回收,节省空间
应用场景:都是在移动端使用居多 new Student().method.();
2.开发中,匿名对象一般都是使用一次(使用完毕会立即被回收)
3.匿名对象可以进行参数传递()
new StudentDemo().method(new Studentz()); 链式编程(开发中很少使用)
封装
将一个类中的成员变量( 属性) 私有化, 对外提供公共的访问方法, 来保证类的安全
目的: 为了外界不能够直接访问
private ( 私有) 关键字:
被private 修饰的成员变量, 成员方法只能在本类中访问
标准类写法
注意: 同一个包下( 文件夹) 不能存在同一个类名
public class Person {
private String name;
private String sex;
private int age;
private static String nationality= "cn" ;
public void setName ( String name) {
this . name= name;
}
public String getName ( ) {
return name;
}
public void setSex ( String sex) {
this . sex= sex;
}
public String getSex ( ) {
return sex;
}
public void setAge ( int age) {
this . age= age;
}
public int getAge ( ) {
return age;
}
public static String getNationality ( ) {
return nationality;
}
public Person ( ) {
System. out. println ( "调用了无参构造方法创建对象" ) ;
}
public Person ( String name, String sex, int age) {
System. out. println ( "调用了有参构造方法创建对象" ) ;
this . name= name;
this . sex= sex;
this . age= age;
}
}
this关键字
为了使变量见名知意, 故而引入了this 关键字,
例如: this . name= name;
this . age= age;
this . sex= age;
this : 代表当前这个类对象的地址值引用, 引入this 是为了区分成员变量和局部变量