既上一章节,我们概述了面向对象的理论知识,还回顾了方法的定义和调用,接下来这篇博文中,我们从如何创建一个对象开始陈述:
文章目录
1.类与对象的创建
1.1 类的概念
类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物.
1.2 对象是抽象概念的具体实例
例如:
张三就是人的一个具体实例,旺财是一个狗的具体实例
能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念
小结:
根据上面的这个概念,其实不难理解出,类其实就是对抽象概念的一个描述,但不是一个具体的事物,他描述的是一个抽象的概念,将一个抽象的概念,描述出一个抽象的模板。
然后将类进行实例化的时候,创建出了对象,对象设置的各种属性值,就是对类的实例,也是一个具体的事物。
那说了这么多,我们来看一下代码,利用demo示例来进行理解。
public class Application{
public static void main(String[] ages){
//在这个主函数中,将类进行具体的实例化
Person zhangsan = new Person();
zhangsan.name ="张三";
zhangsan.age =18;
System.out.println(zhangsan.name);
System.out.println(zhangsan.age);
zhangsan.say();
}
}
//这是一个人,类的模板
public class Person{
//一个标准的类由 属性字段和方法 两个部分组成
//属性字段
String name; //默认值 null
String age; //默认值 0
//方法
public static void say(){
System.out.println(this.name+"在学习");
}
}
//面向对象编程的本质就是,以类的形式组织代码,以对象的形式封装数据。
1.3 new 关键字
使用 new 关键字的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化 以及 对类中构造器的调用
简单来说, 类的实例化和对象的创建需要通过new关键字帮助实现。我们这么理解会更加的直观一些。
2.构造器的详细讲解
2.1 概念
类中的构造器也称为方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
- 必须和类的名字相同
- 必须没有返回值类型,void 也不能写
2.2 构造器的 codedemo
public class Demo3{
public static void main(String[] args){
//使用new 关键字进行对象的实例化时,构造器会帮我们完成初始化
Person person = new Person();
System.out.println(person.name); //null
// 这个null值就是构造器初始赋值的
}
}
class Person{
//即使这个类中什么也不写,它也会存在这个方法
//它会显示的定义构造器
String name;
//这就是一个构造方法 没有返回值 和类名相同
public Person(){
}
}
2.3 构造器作用总结
简单理解就是说,我们使用new关键字 进行类的实例化时候,类的属性默认值就是构造器帮助完成初始化的。
- 使用new关键字的时候必须要有构造器,它会帮助完成默认值的初始化,即便不写,也会隐含的创建一个默认的,new 关键字的本质就是在调用构造器
如果显示定义了构造器,还想使用无参构造,那无参构造就必须要显示定义出来,否则会报错
- 构造器的第二个作用就是 帮助完成属性值的初始化(对于这一点,我们可以自己去写个demo示例,然后debug看其执行过程)
- 构造器可以重载多个
3.创建对象的内存图分析
4.总结类与对象
类与对象:
类是一个模板,对象是一个具体的实例。
方法:定义和调用
对象的引用:
引用类型 -> 对象是通过引用来操作的: 栈-----> 堆
对象的属性:
字段 Filed 成员变量
默认初始化值::
- 数字: 0,0.0
- char:u0000
- boolean:false
- 引用:null
修饰符 属性类型 属性名 =null;
对象的创建和使用:
必须使用 new 关键字创建对象,创建对象必须有构造器
对象的属性
对象的方法 也是通过 对象名. 来进行调用
类:静态的属性,动态的行为方法
参上所述内容以讲解完毕,如有不明了的地方,请伙伴们自行用代码进行练习理解。下章,我们将进行面向对象的三大特征的学习。