对象的概念、类的概念、类的组成部分
7.面向对象
7.1 什么是对象
7.1.1 什么是程序
- 程序是为了模拟现实世界,解决现实问题而使用计算机语言编写的指令集合;
7.1.2 现实世界的组成
-
世界是由什么组成的?
有人说:“世界是由无数原子组成的”;
有人说:“世界是由无数的事物组成的”;
有人说:“世界是由无数物体组成的”;
有人说:“世界是由一切由生命和没有生命的组成的”;
有人说:“世界是由你、我、他组成的”; -
所有的回答都很抽象,没有特别明确的答案;
-
在程序员的眼里。世界的组成最为明确:“世界是由无数个对象组成的”;
7.1.3 什么是对象
- 面向对象思想(Object Oriented Programming);
一起客观存中的事物都是对象,万物皆对象;
任何对象,一定具有自己的特征和行为;
7.1.4 现实中的对象
- 以下对象都有自己的属性和方法
7.1.5 程序中的对象
- 如何使用程序模拟现实世界,解决现实问题?
首先,在程序当中,必须具有和现实中相同的对象,用以模拟现实世界;
然后,使用程序中的对象代表现实中的对象,并执行操作,进而解决现实问题;
- 现实中的对象多数来自于“模板”,程序中的对象也应该具有“模板”;
- 现实中的对象,来自于模板,通过模板造出来的实体,即是现实的对象;
- 程序中的对象,来自于模板(类),通过类造出来的实体,即是程序中的对象;
7.2 类
7.2.1 什么是类
7.2.2 类的抽取
- 在一组相同或者类似的对象中,抽取出共性的特征和行为,保留所关注的部分;
7.3 类的组成
7.3.1 类的定义
7.3.2 对象的创建
7.3.3 类与对象的关系
- 类:定义了对象应具有的特征和行为,类是对象的模板;
- 对象:拥有多个特征和行为的实体,对象是类的实例;
package com.qf.day10.oop;
public class OOP {
public static void main(String[] args) {
Dog dog1 = new Dog();//创建Dog类型的对象,并保存在dog1当中
dog1.breed = "萨摩耶";
dog1.age = 2;
dog1.sex = "公";
dog1.furColor = "白色";
System.out.println(dog1.breed+"\t"+dog1.age+"\t"+dog1.sex+"\t"+dog1.furColor);
dog1.eat();
dog1.sleep();
System.out.println("-----------------------------------------");
Dog dog2 = new Dog();//创建Dog类型的对象,并保存在dog2当中
dog2.breed = "哈士奇";
dog2.age = 1;
dog2.sex = "母";
dog2.furColor = "黑白";
System.out.println(dog2.breed+"\t"+dog2.age+"\t"+dog2.sex+"\t"+dog2.furColor);
dog2.eat();
dog2.sleep();
}
}
class Dog{
//在现实中的一组相同或者类似的对象中,提取共性的特征和行为,保存在程序中的模板里(类)
//属性-实例变量
String breed;//品种
int age;//年龄
String sex;//性别
String furColor;//毛色
//方法-实例方法(函数)
public void eat() {
System.out.println("eating dog-food");
}
public void sleep() {
System.out.println("sleeping...");
}
}
7.3.4 实例变量(成员变量、属性)
- 局部变量必须先赋值再使用,否则会编译错误;
- 对于实例变量而言,未赋值并不会编译错误,且能访问;
7.3.5 实例变量与局部变量的区别
— | 局部变量 | 实例变量 |
---|---|---|
定义位置 | 方法或方法内的结构当中 | 类的内部,方法的外部 |
默认值 | 无默认值 | 字面值(与数组相同) |
使用范围 | 从定义行到包含其结构结束 | 本类有效 |
命名冲突 | 不允许重名 | 可与局部变量重名,局部变量优先 |
7.3.6 实例方法(成员方法)
-
对象的实例方法包含两部分:方法的声明和方法的实现;
-
方法的声明:
代表对象能做声明;
组成:修饰符 返回值类型 方法名(形参列表) -
方法的实现:
代表对象怎么做:即如何实现对应的功能;
组成:{//逻辑代码}