【Java学习】06. 面向对象
本篇博客主要介绍面向对象的基本内容。
类的基础知识:
面向对象有两个最基本的概念:类和对象:
- 对象(不是男女朋友(~ ̄▽ ̄)~):对象是类的一个实例,有属性和行为。
- 类:类是一个模板,它描述一类对象的属性和行为。
- 属性:一个对象具有的特征,如大小,颜色等。
- 行为:一个对象能执行的动作
类的一般形式
class classname{
type instance-varible1;
...
type methodname(){
// code
}
}
一个简单的类
例如下面我们创建一个类:
public class People{
String name;
String sex;
int age;
void eat() {
System.out.println("eat");
}
void run() {
System.out.println("run");
}
void sleep(){
System.out.println("sleep");
}
}
在上面这个类中我们创建了人 类(相对于我们是女娲在计算机中造人哈)。对于人来说,有属性:姓名、性别、年龄。有行为:吃、跑、睡。这些只是一个描述,而不具体的代表某一个人,我们要制定一个具体的人,就得知道一个人具体在哪里。就是说会占据一定的内存空间。
实例化(声明)对象
下面我们来将上面的类进行实例化:
People li = new People();
这样就实例化出来一个People li出来。
可以将上面的代码分为两步:
People li; //将变量li声明为对People对象的引用,但li的值仍为NUll,引用li会产生编译错误。
li = new People(); //将引用对象赋值给了实际的对象,这里保存的是对象的地址
new运算符:为对象分配内存,当内存空间不足时会发送运行时异常
对象的变量赋值:
看一下这个例子:
People li = new People();
People zhao = li;
现在有这么的一个问题:
li和zhao是同一个实例吗?还是zhao是对li的副本的引用。
这一点如果将上面一个例子能理解,那么就不会出什么岔子了,这里zhao得到的只是li的内存地址,所以指向的对象会是同一个对象。
方法
方法的一般形式
type name(parameter-list){
// code
return 值; // 返回值,可选。
}
其中type指定了返回方法的数据类型,不返回值,必须指定为void。
在上面的实例中,我们已经将三个方法放入到我们的类中。在实例化后我们可以通过对应的实例名称.方法名进行引用。如:
li.run();
返回值
当函数有返回值时才可以使用变量名进行接收。并且这个值的类型必须是在方法名前指定好的类型。并且接收返回值的变量必须是与返回值的类型兼容的类型。
参数
方法接收参数在括号内接收参数列表,参数列表中的参数需要声明参数类型。普通的添加参数就不多说了,来说一下可变长参数,举一个例子如下:
public void print(String... args) {
for (int i = 0; i < args.length; i++) {
out.println(args[i]);
}
}
java使用...
接收可变长参数,并作为数组返回。
详细的内容将会在下一篇博客中描述。