学习Java第十天--面向对象之对象、类

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 实例方法(成员方法)

  • 对象的实例方法包含两部分:方法的声明和方法的实现;

  • 方法的声明:
    代表对象能做声明;
    组成:修饰符 返回值类型 方法名(形参列表)

  • 方法的实现:
    代表对象怎么做:即如何实现对应的功能;
    组成:{//逻辑代码}

发布了34 篇原创文章 · 获赞 7 · 访问量 1307

猜你喜欢

转载自blog.csdn.net/weixin_44257082/article/details/104318059