《Java基础复习》—类与对象&初始化
关于类和对象的基本理念,就不再赘述(如果你学习过还忘了,就是一种特殊的本领了),没有学习过的可以去搜索一下OOP或者类和对象,百科的知识就已经足够了,不必重复。
这里的讲解由浅入深,我会在分块前做好标注,区分初学者与复习者所需要了解的部分,有基础的可以不再看(基础部分)标注的部分
随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主要原因之一。——《Java编程思想》
这是一句揭示了Java为什么能稳居排行第一(目前2020年)的原因之一。也就是Java虚拟机与GC(垃圾回收)的神奇之处。本文不深入探讨虚拟机相关知识
一、Java类的最基础的结构
这里先说最基础的结构,随着文章的叙述,会不断扩充这个类
Java使用关键字class来定义一个类,如下
首先你要养成良好的习惯,使用驼峰式命名,开头要大写
注意Java中只有Class的开头才是大写的,其他的标识符都为小写。
class Aclass{
int num1;
void function(num){
num1=num;
System.out.println(num1);
}
}
在Java中,类中包含的信息,如这个num1,被称为属性,类中的函数被称为方法
该函数的返回类型是void,当然也可以为其他类型,Java还允许返回值为对象,集合。
这就是一个类的基本结构了,那如何使用这个类?
二、初始化
**===================================**
(基础部分)
如上我们编写了一个类,但是有一点你需要知道的是,你所编写的只是一个模板,要想投入你的程序使用,需要生成对应的对象。也就是,在内存中创建属于这个类的空间(位于堆上)。
现在,你需要生成一个对象,按照上面的思路,你至少需要一个能分配内存空间的初始化方法,我们假设为initialize()方法。
正如这个方法的名称,我们在调用一个类之前,都需要调用initialize()方法。通过调用initialize()方法,我们可以搭建一个构造器,保证所有的对象都会得到初始化。
所以我们需要一个独特的方法,不能与成员名称冲突,可被编译器识别。故Java采用了与C++类似的方案:构造器采用与类相同的名称。
注意要与类名完全相同!
现在为之前的类加上构造器
class Aclass{
int num1;
void function(num){
num1=num;
System.out.println(num1);
}
Aclass(){
System.out.println("初始化了Aclass类");
}
}
如何操作实现初始化呢?
new Aclass();
/*
out:
初始化了Aclass类
*/
Java本质上只有一种初始化的方法—构造器初始化,这与C++不同
上述的语句初始化了一个Aclass类的对象并返回。
即ne