目录
关于对象基础的代码
成员函数不需要 static ,其中 Student 的包含的一切都是成员,age、name 是成员变量,方法是成员方法,与C++的逻辑基本相同。
Test 代码中的 s1 储存的是堆区地址。如,
Student s2 = s1; //指向的是同一个对象
s1 = null;
s2 = null; //这只是清空了s1\s2的内容,其地址储存的内容并没有清除
//但编译器会自动识别出这段野地址,并且清除
一个文件中可以有多个 class ,但只能有一个 public 且其只能修饰与文件同名的那个类。
关于this
作用与C++中的作用类似,都是用来区分类内和类外元素,防止冲突
其 this 的本质就是,接收了对应类的对象的地址。
关于构造器
用C++的语言来讲,就是构造函数,没啥区别,就写作形式有点区别,什么无参构造、有参构造,都一样,
public class Student {
//这就是构造器
public Student()
{...//可进行对成员变量的初始化等一系列各种操作
}
}
没有内容的无参构造器是默认存在的。
在有参构造存在的情况下,编译器会自动删除默认的无参构造,若要使用无参,需要自己再另行声明。
关于封装
在一个类中,有一些东西是需要人们看到的,有些东西是不能让人们看到的,将这些东西进行隐藏和展示的过程就是封装,
在代码中,一般成员属性都是需要隐藏的,也叫做私有化,即在其后面加上 private ,获取和修改这些属性,由我们另行书写的方法(getXXX(), setXXX())来完成,而这些函数都是需要展示的,也叫公有的,即方法前面都有的 public。
上文中的最后一张图中,就有一个私有属性(private int age)和几个公有函数。
关于实体类(JavaBean)
特点:
· 每个成员变量都是私有,且都有对应的get、set方法
在IDEA中,是存在相关的快捷键的。如下
左键找到“生成” -> 选择Getter、Setter -> 按住“shift”,选中两个变量 -> 即可生成
此外,在“生成”中还有别的一些快速生成,大家可以自行探究。
· 必须有一个公开的无参构造,最好写出来
可以直接用上文的快捷生成,来完成,步骤相似,不做赘述。