包:
- 概念:
- 就是一个文件夹,为了方便代码的管理,减少程序员的负担,更容易找到要找的代码
- 命名规范:
- 包名全部大小写
- 在使用的时候记得用 import导入包
- java的主要的包
- java.lang包是java的核心包,例如:我们常用的 system就是在里面的,会进行自动的调用,不需要导包
- java.util.* 是表示导入这个包中的类,但是不会导入他的子类
封装:
- 概念:
- 是为了解决变量赋值取值不安全的问题
- 怎么用?
- 我们在一个类中进行变量的操作的时候,成员变量可以直接用对象名去调用属性名,然后去赋值或者改值,这样的话不安全
- 因此我们用到封装,将变量的赋值和取值放在方法中去,就会安全很多,不会直接去对成员变量赋值取值
this:
-
概念:
- 指向的是这个变量或者对象
-
用法:
- 在方法中,我们在给成员变量进行取值赋值的时候,我们要用到
- this.属性名
-
this的四种用法:
-
在set方法中,我们会传参进入方法,这个时候,为了见名知意,我们会通常和变量名一样,那么就会存在同名不同义的问题
-
this就是为了解决这个问题,通过this可以指向成员变量,也可以指向对象
-
第一种用法:
- 在set方法中 this.属性 = 传入进来的属性
-
第二种用法:
-
在有参构造中,我们可以设置多个有参构造,用this去代替上面的构造方法,具体看代码:
-
public Model() { } /** * 以下几个构造方法是表示调用构造方法,对上面已经进行赋值的构造方法拿来用 * 使用语法 * this() 括号里是上面的构造方法已经赋值过的变量名 * @param name */ public Model(String name) { this.name = name; } public Model(String name, String sex) { this.name = name; this.sex = sex; } public Model(String name, String sex, int age) { this.name = name; this.sex = sex; this.age = age; } public Model(String name, String sex, int age, double chestMeasurement) { this.name = name; this.sex = sex; this.age = age; this.chestMeasurement = chestMeasurement; } public Model(String name, String sex, int age, double chestMeasurement, double waistline) { this.name = name; this.sex = sex; this.age = age; this.chestMeasurement = chestMeasurement; this.waistline = waistline; } /** * 在构造方法中的this,指向的是成员变量,在构造方法中,会将传进来的值进行 赋值操作,把传进来的形参赋值给成员变量 * @param name * @param sex * @param age * @param chestMeasurement * @param waistline * @param hipline */ public Model(String name, String sex, int age, double chestMeasurement, double waistline, double hipline) { this.name = name; this.sex = sex; this.age = age; this.chestMeasurement = chestMeasurement; this.waistline = waistline; this.hipline = hipline; }
-
-
第三种用法:
- 作为返回值返回 :this持有对象地址,表示该类的一个对象即是一个数据。 了解即可
-
第四种用法:
- 作为参数传递,了解即可
-
-
-
-
注意事项:
- this不能在静态的方法中使用: 无法从静态上下文中引用非静态成员this
- static是类级别,this是对象级别,因此static会比this优先加载
- static修饰的是属于类。
- this是属于某一个具体的对象。