匿名对象
匿名对象顾名思义就是没有名字的对象,如:
匿名对象常用于只调用一次对象或者常用于实参去传值。
封装
封装就是将方法和成员变量封存在一个容器中。
封装可以让代码安全性提高,同时可以多次使用代码,提高复用性,隐藏内部的实现方法,防止恶意修改。
封装原则
将不想被别人知道的方法和实现过程封装起来,在提供公共的接口。
如:方法,对象(类), private
private关键字
private关键字的意思是私有的,它只能被所定义的类里面的方法调用。
private可以修饰方法和成员变量,但不能修饰类。
(注意:public 关键字可以修饰 类, 方法, 成员变量,当一个文件有多个类时
只能有一个public修饰的类。)
标准的封装(JavaBean)
当一个类文件里成员变量全是用 private 修饰,成员方法用public去修改成员变量时,我们称之为一个标准的JavaBean。
this关键字
当成员变量名字和成员方法中定义的局部变量同名时,可以用this关键字来指定是成员变量。
注意:this代表的其实就是对象,谁调用谁就是this,比如:
Student stu = nuw Student(); 当Student类中出现 this,那么这个this就是 stu。
this关键字解决了局部变量中隐藏属性的问题。
构造方法
构造方法就是将类初始化的方法,
构造方法与类同名。同时,构造方法在创建类的时候会自动生成一个无参的构造方法。
语法:
public 类名(){ }( )中可以写参数,没有就是无参构造,也是系统会自动生成,前提是没有重载。
注意:当自己写了构造方法,系统就不会生成无参的构造方法
类的组成
成员变量
成员方法
构造方法
给私有成员变量赋值的方法
-
通过setXX方法
-
带参的构造方法
-
Student s = new Student("参数"); 做了哪些?
把 Student.class 文件加载到内存中
在栈中为 s 开辟一块空间
在堆中为学生对象申请空间
给学生对象的成员变量进行默认初始化: null 0 null
给学生对象的成员变量进行显示初始化 : 张三 18 007
通过构造方法给成员变量进行初始化 : doubleyong 18 008
对象构造完成, 把地址值赋值给s
class Student7{
private String name="张三";
private int age=18;
private String stuNO="007";
public Student7(String name, int age, String stuNO) {
this.name = name;
this.age = age;
this.stuNO = stuNO;
}
public Student7(int age, String stuNO) {
this.age = age;
this.stuNO = stuNO;
}
public Student7(String name) {
this.name = name;
}
public Student7(){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getStuNO() {
return stuNO;
}
public void setStuNO(String stuNO) {
this.stuNO = stuNO;
}
}
public class Demo7 {
public static void main(String[] args) {
Student7 s = new Student7("doubleyong",18,"008");
}
}
static
static 是存储在方法区的 静态资源区。随着类加载而加载。
当有重复的 赋值时,可以将其赋值为静态资源,达到提高效率的目的。
静态变量与静态方法
static 是一个修饰符,修饰成员属性时,称为静态变量, 修饰成员方法,称为静态方法
static 的特点:
-
随着类的加载而加载
-
优先于对象
-
被类的所有对象共享
-
可以通过类名调用,也可以通过对象名调用,但是推荐使用类名调用
static 关键字的注意事项
-
静态方法里没有this关键字(就是不能用this)
如何理解 ?
静态随着类的加载而加载,this是随着对象的创建而存在
-
静态方法只能访问静态变量和静态方法
成员方法:即可以调用成员属性,也可以调用静态属性
记住点:静态的只能访问静态的
静态变量与成员变量的区别
所属不同
静态变量属于类,所以也称为为类变量
成员变量属于对象,所以也称为实例变量(对象变量)内存中位置不同
静态变量存储于方法区的静态区 成员变量存储于堆内存
内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失 成员变量随着对象的创建而存在,随着对象的消失而消失
调用不同
静态变量可以通过类名调用,也可以通过对象调用 成员变量只能通过对象名调用
main方法
public static void main(String[] args){ }
public : 公共的/公开的 访问权限最大, main 方法由jvm调用 ,所以权限足够大
static : 静态的 不需要创建对象,通过类名可以直接调用。方便jvm调用
void : 方法返回值类型给调用者 由jvm调用的 返回值给jvm是没有意义的
main: 是一个常见的方法入口
String[] args : 字符 中数组 ,用户输入的
这个东西是早期的键盘录入,已经被Scanner淘汰了