面向对象知识整理

面向对象内容概述图
在这里插入图片描述
回顾下面向过程和面向对象的内容

面向过程思想概述
1.面向过程的思想是去如何去实现一个功能的步骤:首先要做什么,然后做什么,最后做什么,一步一步去实现,具体的每一步都需要我们来操作的实现,这些步骤相互调用和协作,来实现我们的功能,每一步我们都是参与者,并且需要面对具体的每一个步骤和过程,这是面向过程最直接的体现
2.面向过程开发关心的就是每一步的实现,如果每一步都能够实现那么功能就能够实现,中间如果任何一个步骤出现问题,都会导致失败。
3.面向过程的代表语言:C语言

面向对象思想概述
面向过程的编程思想只能满足简单功能的实现,但在实际开发当中,项目的功能只会越来越多,不会越来越少,需求也是不断地变化的,可随着需求的更改,功能的增多,发现需要面向每一个过程就很麻烦了,并且程序的可维护性也是非常非常差的,能不能把这每一个步骤和功能再进行封装,根据不同的功能,进行不同的封装,功能类似的封装在一起。使用的时候,找到对应的类就可以了。这就是面向对象的思想

OOA : 面向对象分析 : 分析解决某个事物一共有多少个对象参与
OOD:面向对象设计: 分析对象和对象之前的关系
OOP:面向对象编程

面向对象的优点:
1.面向对象也是基于面向过程的编程思想,但是面向对象相比于面向过程更符合我们的思维方式,万物皆对象
2.可以将复杂的问题简单化,大大提高了程序的可读性和可维护性
3.面向过程思想中,我们是程序的执行者,面向对象当中,我们是程序的调用者,这样的话也可以方便程序给其他人调用,提高了程序的扩展性。

面向对象和面向过程的区别与共同点:
区别:
面向对象:事物比较复杂,使用简单的线性思维无法解决
面向过程:食物比较简单,可以用线性的思维去解决
共同点:
1.面向过程和面向对象都是解决实际问题的一种思维方式
2.二者相辅相成,并不是对立的。
解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式来处理

面向对象思想的特点
1.封装
2.继承
3.多态
4.抽象

对象和类的概念

对象:是具体的事物
类:是对对象的抽象(抽象抽出象的部分)
对象:张三 李四 王五 赵六
抽取上述对象相象的部分:
年龄:姓名 身高 体重 打牌 唱歌 跳舞
Person Teacher
先有具体的对象,然后抽象各个对象之间象的部分,归纳出类通过类再认识其他对象。

通过Java类来描述事物
现实生活中如何描述一个事物呢:
属性 该事物的特征描述
方法 该事物的动作行为
举例:表示一条狗
属性 狗的品种,狗的颜色,狗的体重
方法 跑,跳,叫,睡

类和对象的关系
类:类是抽象的,是一组相关的属性和行为的集合,一个模板。
对象:对象是具体的,是客观存在的实例,是该类事物的具体体现。

举例:老婆 小丽 = new 老婆();
类 老婆是一个类
对象 new 老婆()是一个对象,取了个名字叫小丽
引用 叫小丽相当于叫老婆对象

在这里插入图片描述
对象的特征
属性
概念:对象具有的各种特征
每个对象的每个属性都拥有特定值
例如:张浩和李明的年龄、姓名不一样
方法
概念:对象执行的操作

类的特征
类:具有相同属性和方法的一组对象的集合
类是对象的类型
不同于int类型:具有方法

类和对象的关系
1.类是抽象的概念,仅仅是模板,比如说:“人”
2.对象是一个你能够看得到、摸得着的具体实体

类和对象的总结

对象和类的关系:特殊到一般,具体到抽象。
类:我们叫做class。
对象:我们叫做Object, instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。

类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
类是用于描述同一类形的对象的一个抽象的概念,类中定义了这一类对象所应具有的静态和动态属性。
对象是Java程序的核心,在Java程序中“万事万物皆对象”。
JDK提供了很多类供编程人员使用,编程人员也可定义自己的类。

类的定义

Java中用class描述类
1.成员变量表示就是事物的属性
2.成员方法表示就是事物的行为

类的格式
[访问权限修饰符] class 类名{
成员变量
成员方法
}

创建对象
类名 对象名 = new 类名();

Person person = new Person();

引用对象成员:使用“.”进行以下操作
1.引用类的属性:对象名.属性
2.引用类的方法:对象名.方法名()

person.name = "张三";//给name属性赋值
person.introduce();//调用introduce()方法

举例代码如下:

public class OOPDemo01 {
	public static void main(String[] args) {
		Student xiaoLi = new Student();
		System.out.println(xiaoLi.name);	
		System.out.println(xiaoLi.age);	
		System.out.println(xiaoLi.height);	
		System.out.println(xiaoLi.gender);	
		System.out.println(xiaoLi.isMarried);	
		
		xiaoLi.name = "小丽";
		xiaoLi.age = 18;
		xiaoLi.height = 1.8;
		xiaoLi.gender = "男";
		xiaoLi.isMarried = true;
		
		System.out.println(xiaoLi.name);	
		System.out.println(xiaoLi.age);	
		System.out.println(xiaoLi.height);	
		System.out.println(xiaoLi.gender);	
		System.out.println(xiaoLi.isMarried);
		
		int result = xiaoLi.add(10, 30);
		System.out.println(result);
		
		xiaoLi.print99MulTable();
		
		xiaoLi.sleep();
		
		Student s = null;
		System.out.println(s.name);
		
	}
}

class Student {
	// 成员变量
	// 姓名
	String name;
	// 年龄
	int age;
	// 身高
	double height;
	// 性别
	String gender;
	// 是否已婚
	boolean isMarried;
	
	// 成员方法 之前的static去掉,之前怎么写方法的,现在就怎么写!!
	public int add(int a, int b) {
		return a + b;
	}
	
	// 打印九九乘法表
	public void print99MulTable() {
		for (int i = 1; i <= 9; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print(j + "x" + i + "=" + (i*j) + "\t");
			}
			System.out.println();
		}
	}
	
	public void sleep() {
		System.out.println("睡");
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值