初识面向对象
java是一门面向对象的对象的编程语言,围绕着类和对象展开的思想,把现实生活中对象与对象的关系在计算机中去体现,从而处理数据;现实生活万事万物皆为对象,万事万物皆可分类。类和对象是java语言的核心
面向对象有以下特点:
a.面向对象是一种常见的思想,比较符合人们的思考习惯;
b.面向对象可以将复杂的业务逻辑简单化,增强代码复用性;
c.面向对象具有抽象、封装、继承、多态等特性。
类和对象的认识
现在模拟一种场景:现实的世界和虚拟的世界:理解类和对象
1.比如现实生活中:管理学生信息,设想计算机系统如何管理学生信息
①设计纸质模板,用于填写学生信息的模板
②复制模板:填写具体的学生信息
2.设想计算机系统应该怎么做
①应该设计一个模板,用于填写学生信息的模板
②复制模板:填写具体的学生信息
1.现实生活中
①现实生活中,做一个纸质模板:目标是为了统计某一类事物的数据,录入学生信息模板,主要为了统计学生信息
理解:学生信息纸质模板,没填写任何数据,描述学生这一类事物!是一个类
②现实生活中,复制纸质模板,得到独立的崭新的一份,填写具体的信息,该复制的模板填写了具体的信息,描述了一个具体的信息
理解:学生纸质模板,填写了具体的信息,描述的是一个具体的学生,是一个对象
2.虚拟世界中
①需要个模板,一个类,用来描述一类事物
②可以复制该模板,填写具体的信息,用来描述具体的一个事物
3.再次强化类和对象的概念
①[类]:就是一个类事物:是不具体的,是类
②[对象]:就是一个具体的学生,是具体的,是对象
类和对象的创建
类的创建
①java中的类,就是类!用来描述一类事物,任何事物包含:静态属性,动态属性
java中的类就是用来描述一类事物!
②通过设计类,可以用来描述一类事物
③如何设计:
静态属性[描述]:成员变量[成员字段]
动态属性[行为]:方法
class Animal {//描述了动物这一类事物
String name;//静态属性( 字段),
int age;
void run(){//动态行为(方法),能够完成一些特定的行为
}
}
注意:1.类名首字母必须大写 2.类名应该做到见名知意
对象的创建
new 类名();
计算机处理的是数据,我们需要准确的认识对象的数据类型,用什么类型来接收,如:
Animal a = new Animal();----------->数据类型 对象名 = new 数据类型();
java中类相当于是一个模板,对象是具体的描述着类事物具体的特性,用的都是对象,也可以理解成用的都是数据。
1.使用int 类型变量 可以接收Animal 对象吗?—>不可以
2.使用String类型变量 来接收Animal 对象可以嘛?---->不可以
在堆栈内存图中的分析,new一个对象就在堆中开辟了一个内存空间
在栈中 变量持有对象在堆中的地址值
构造方法
什么是构造方法
1.构造方法的结构和普通方法类似,但是和普通方法完全不同两个代码块;
2.构造方法也是方法,意味着使用了构造方法,方法会执行,也能完成功能
3.构造方法就是一个代码块【就是一个结构 ,构造方法和 字段方法一样都是一个类中的成员之一】
4.构造方法也该存在于类的结构体中
构造方法的书写
1.构造方法的名字和类名一致【包括大小写完全一致】
2.没有返回值类型
3.构造方法内部不需要返回任何的数据
4.其他的和普通方法类型 ,可以有修饰(public),可以有形参列表,可以有方法体
构造方法的特点
1.每一个类中都至少有一个构造方法;
2.如果没有看到(显示的),那么存在一个隐式的无参数的构造方法;当我们在new一个对象的时候其实间接调用了无参的构造方法
3.如果一个类中有显示的构造方法,那么隐式的就不存在了;构造方法也可以有参数,
class Animal {
Animal(形式参数){//有参构造方法
}
}
构造方法的作用
1.通过调用构造方法可以创建对象
2.在创建对象的同时给对象的字段赋值【通过构造方法来完成】