java13编程基础面向对象深入


在这里插入图片描述

java13编程基础面向对象深入1

大纲

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xcsTRVSr-1605853263427)(/1581425457829.png)]

类与对象

面向对象与面向过程

面向过程和面向对象都是对软件分析、设计和开发的一种思想,它指导着人们以不同的方式去分析、设计和开发软件。早期先有面向过程思想,随着软件规模的扩大,问题复杂性的提高,面向过程的弊端越来越明显的显示出来,出现了面向对象思想并成为目前主流的方式。两者都贯穿于软件分析、设计和开发各个阶段,对应面向对象就分别称为面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)。C语言是一种典型的面向过程语言,Java是一种典型的面向对象语言。

面向过程思想思考问题时,我们首先思考“怎么按步骤实现?”并将步骤对应成方法,一步一步,最终完成。 这个适合简单任务,不需要过多协作的情况下。比如,如何开车?我们很容易就列出实现步骤:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LMUiCwmm-1605853263434)(/1581406949597.png)]

面向过程适合简单、不需要协作的事务,重点关注如何执行。

但是当我们思考比较复杂的设计任务时,比如“如何造车?”,就会发现列出1234这样的步骤,是不可能的。那是因为,造车太复杂,需要很多协作才能完成。此时面向对象思想就应运而生了。

面向对象(Oriented-Object)思想更契合人的思维模式。我们首先思考的是“怎么设计这个事物?” 比如思考造车,我们就会先思考“车怎么设计?”,而不是“怎么按步骤造车的问题”。这就是思维方式的转变。

其次应该思考**“应该让谁来实现?”**,这个"谁"就是对象 , 对象如何实现我们不关注,只关注对象本身。

比如,我们用面向对象思想思考“如何设计车”:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9LbB6m6c-1605853263439)(/1581407352226.png)]

天然的,我们就会从“车由什么组成”开始思考。发现,车由如下对象组成:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g5IjdYyK-1605853263446)(/35457341321.png)]

为了便于协作,我们找轮胎厂完成制造轮胎的步骤,发动机厂完成制造发动机的步骤;这样,发现大家可以同时进行车的制造,最终进行组装,大大提高了效率。但是,具体到轮胎厂的一个流水线操作,仍然是有步骤的,还是离不开执行者、离不开面向过程思维!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gCVCaWT2-1605853263451)(/1581406436184.png)]

类与对象的概念

我们人认识世界,其实就是面向对象的(此对象可不是男女谈对象的彼对象呀) 。比如现在让大家认识一下“天使”这个新事物,天使大家没见过吧,怎么样认识呢?最好的办法就是,给你们面前摆4个天使,带翅膀的美女,让大家看,看完以后,即使我不说,大家下一次是不是就都认识天使了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-scnhtdrd-1605853265562)(/1581405435758.png)]
图1-1 认识天使

但是,看完10个天使后,我们总要总结一下,什么样的东东才算天使?天使是无数的,总有没见过的!所以必须总结抽象,便于认识未知事物!**总结的过程就是抽象的过程。**小时候,我们学自然数时怎么定义的?像1,2,3,4…这样的数就叫做自然数。 通过抽象,我们发现天使有这样一下特征:

  1. 带翅膀(带翅膀不一定是天使,还可能是鸟人)
  2. 女孩(天使掉下来脸着地,也是天使!)
  3. 善良
  4. 头上有光环

那么通过这4个具体的天使,我们进行抽象,抽象出了天使的特征,我们也可以归纳一个天使类。 通过这个过程,类就是对象的抽象。

对象:是具体的事物 xiaoming xiaohong
类:是对对象的抽象(抽象 抽出象的部分)Person
先有具体的对象,然后抽象各个对象之间象的部分,归纳出类通过类再认识其他对象。

生活案例

  • 类是一个图纸 对象是根据该图纸制造多个实物

  • 类是一个模具 对象是使用模具制造的多个铸件(月饼模子 )

  • 类是上海大众汽车,对象就是大家购买的一辆辆具体上海大众汽车

类可以看做是一个模版,或者图纸,系统根据类的定义来造出对象。我们要造一个汽车,怎么样造?类就是这个图纸,规定了汽车的详细信息,然后根据图纸将汽车造出来。
类:我们叫做class。 对象:我们叫做Object,instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。

对象和类的关系:

  • 特殊到一般,具体到抽象。
  • 类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
  • 类是用于描述同一类形的对象的一个抽象的概念,类中定义了这一类对象所应具有的静态和动态属性。
  • JDK提供了很多类供编程人员使用,编程人员也可定义自己的类。

自定义类与对象

自定义类

做了关于对象的很多介绍,终于进入代码编写阶段。本节中重点介绍类和对象的基本定义,属性和方法的基本使用方式。

定义类(类的组成)

  • 属性 field
  • 方法 method
  • 构造方法 construtor
  • 其他:代码块 静态代码块 内部类
属性(field 成员变量)

属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。

在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化

表4-2 成员变量的默认值
数据类型 默认值
整型 0
浮点型 0.0
字符型 ‘\u0000’
布尔型 false
所有引用类型 null

属性定义格式:

[修饰符]  属性类型  属性名 = [默认值] ;   
public class Person{
   
    String name = "张三";
}

说明: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UlsL0WzY-1605853263454)(/1581416668492.png)]

方法

**方法用于定义该类或该类实例的行为特征和功能实现。**方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

方法定义格式:

[修饰符]  方法返回值类型  方法名(形参列表) {
    
	// n条语句   
}   
public class Person{
   
    //成员变量
    String name;
    //成员方法
    public void study(){
   
   		System.out.println("一个程序猿正在努力工作...");
	}
}
使用

创建对象

类名 对象名 = new 类名();
Person p1=new Person();

调用类的属性和方法

对象名.成员变量
对象名.成员方法
p1.name = "李四";
p1.study();
类的实例

一般类中有三种常见的成员:属性field、方法method、构造器constructor。这三种成员都可以定义零个或多个。

编写简单的学生类:

public class Student {
   
    //属性(成员变量)
	int id;
	String sname;
	int age;	
	//方法
	void study(){
   
		System.out.println("我正在学习!");
	}	
	//构造方法
 	Student(){
   
 	}
}

一个典型的IT学生类:

class Computer {
   
	String brand;	//品牌
}
public class ITStudent {
   
	// field
	int id;
	String sname;
	int age;
	Computer comp;
	void study() {
   
		System.out.println(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值