@[toc]
初识面向对象(Java)
学习面向对象内容的三条主线
1.Java类及类的成员 :属性,方法,构造器;代码块,内部类
2.面向对象的三大特征:封装性,继承性,多态性、(抽象性)
3.其它关键字:this、super、static、final、abstract、interface、package、import等
面向过程(POP) 与 面向对象(OOP)
- 二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
- 面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如 抽象、分类、继承、聚合、多态等。
面向对象的三大特征
- 封装 (Encapsulation)
- 继承 (Inheritance)
- 多态 (Polymorphism)
面向对象的思想概述
- 程序员从面向过程的执行者转化成了面向对象的指挥者
面向对象分析方法分析问题的思路和步骤:
- 根据问题需要,选择问题所针对的现实世界中的实体
- 从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类
- 把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。即借助某种程序 语言,把类构造成计算机能够识别和处理的数据结构
- 将类实例化成计算机世界中的对象。对象是计算机世界中解决问题的最终工具
Java语言的基本元素: 类和对象
“万事万物皆对象”
类(Class)和对象(Object)是面向对象的核心概念
- 类是对一类事物的描述,是抽象的、概念上的定义
- 对象是实际存在的该类事物的每个个体,因而也称为实例(instance)
可以理解为:类 = 抽象概念的人;对象 = 实实在在的某个人面向对象程序设计的重点是类的设计
类的设计,其实就是类的成员的设计
Java类及类的成员
- 现实世界的生物体,大到鲸鱼,小到蚂蚁,都是由最基本的细胞构成的。同 理,Java代码世界是由诸多个不同功能的类构成的。
现实生物世界中的细胞又是由什么构成的呢?细胞核、细胞质、… 那么, Java中用类class来描述事物也是如此。常见的类的成员有:
- 属 性:对应类中的成员变量
- 行 为:对应类中的成员方法
==Field = 属性 = 成员变量=域、字段==
==Method = (成员)方法 = 函数==
类和对象的创建
- 创建类,设计类的成员
- 创建类的对象
- 通过“对象.属性”或者“对象.方法"调用对象的结构
类的语法格式
对象的创建
代码举例
package MXDX;
//类的设计,其实就是类的成员的设计
//测试类
public class A {
public static void main(String[] args) {
//2.创建Person类的对象=类的实例化=实例化一个类
Person P1 = new Person();
//调用对象的结构:属性、方法
//调用属性:"对象.属性"
P1.name="tom";
P1.ismale=true;
P1.age=18;
System.out.println(P1.name);
//调用方法:"对象.方法"
P1.eat();
P1.sleep();
P1.talk("chinese");
}
}
//1.创建类,设计类的成员
class Person{
//属性
String name;
int age;
boolean ismale;
//方法
public void eat(){
System.out.println("人可以吃饭");
}
public void sleep(){
System.out.println("人可以睡觉");
}
public void talk(String language){
System.out.println("人可以说话,使用的是:"+language);
}
}
多个对象的创建
- 如果创建了一个类的多个对象,对于类中定义的属性,每个对象都拥有各自的一套副本,且互不干扰。(非static)
==通俗讲解:就像老师列了一个资料表单,同学A可以填,同学B可以填,填了之后相同格式的表单会有不同同学的不同内容,而且互相不影响==
多个对象的赋值”P1=P2“
举例代码,细看注释(代码只做举例不可运行):
Person p1 = new Person();//Person是一个类,创建Person类的对象
p1.name="tom";
Person p2 = new Person();//再创建一个对象p2
p2=p1;
p2.name="joy";
System.out.println(p1.name);//joy
注:上面代码哪怕输出的是p1,输出之所以不是tom而是joy,是因为这时候P2=p1,相当于把p1变量保存的地址值赋给P3.导致p1和p2都指向了堆空间中的同一个对象实体。相当于调用p3其实就是调用p1,修改p3也是修改p1
“万事万物皆对象”
- 在Java语言范畴中,我们都将功能、结构等封装到一个类中,通过一个类的实例化来调用功能结构
- 涉及到Java语言与前端html、数据库等交互时,前后端的结构在Java层面交互时,都体现为类、对象
Scanner、String等文件路径:file
网络资源:URL