总结
我是最棒的!基础不牢,地动山摇!
类和对象的概念
类就是描述一类事物,或者看成是一个分类。例如人类,车类,动物类等等
对象是指具体的个体(也叫做实例instance)
类的两部分
静态部分
就是指类中的那些成员变量,也称之为属性。以学生Student类为例
class Student{
/**
下面两个就是学生类的属性
name代表学生的名字
int代表学生的年龄
*/
String name;
int age;
}
动态部分
是指类的具体行为,也就是类中的普通方法。以学生Student类为例
class Student{
/**
示例普通方法
学生有学习的行为
*/
public void study(){
System.out.println("学习");
}
}
构造方法
构造方法有两种,一种是无参,一种是有参,构造方法名与类名相同。
以学生Student类为例
class Student{
/**
示例两种构造方法
*/
//无参构造方法
public Student(){
}
//有参构造方法
public Student(String n,int a){
name = n;
age = a;
}
}
对象
创建对象及使用
使用new来创建一个对象,创建对象实际上就是在调用构造方法
以学生类为例
class StudentTest{
public static void main(String[] args){
//无参构造方法创建对象
Student stu = new Student();
//对其中的属性进行赋值
stu.name = "xxx";
stu.age = 18;
//有参构造方法创建对象
Student stu2 = new Student("xx",20);
}
}
生命周期
开始:从new开始,在堆中开辟空间
结束:两种情况
-
当对象失去了所有的引用(在栈中没有变量去指向它),我们就无法使用它了。不久后就会被GC回收
-
当对象真正地被销毁,也就是被GC回收之后(对象在堆中占有内存,当把对象的内存空间回收之后)
###匿名对象
概念
匿名对象,就是没有名字(没有栈中的变量保存其堆中的地址)的对象[创建了一个对象而没有使用变量接收]。该对象存在于堆总处于游离状态:没有任何变量保存它的引用地址去指向他
使用场景
- 只需要使用一次的情况
- 把匿名对象作为一个实际参数进行传递