类和对象

面向对象和面向对象概述

面向过程 : 以计算机的思维方式,下达一个个的指令,去完成需求。

        核心:过程 (步骤)。

面向对象:在计算机程序发展到一定规模之后的必然产物,它将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承、帮助人们实现对现实世界的抽象与数字建模。

        核心:对象

        面向对象有三大特性:封装、继承、多态。通过面向对象可以有效提升代码的质量,使之达到可复用、可维护、可扩展等。(高内聚、低耦合)

        注意:面向对象也是基于面向过程而来的,一些规模小的程序使用面向过程实现反而效果更佳、适合的才是 最好的。

类和对象概述

万物皆对象

 生活中的类和对象

在生活中,可以将每一个物体都看做是一个对象,一般通过特征+行为的方式描述所见到的每一个对象。

例如: 一只狗 : (对象)

        特征:(静态信息)

                颜色:米白色

                品种:柴犬

                名字:大黄

                ........

        行为:(动态信息)

                看家

                接飞盘

                跑

                .....

在生活中,看到一个物体,往往会根据它的特征+行为对其进行分类/归类(物以类聚,人以群分)。所谓的类别其实本质上就是对一组对象的共有/相似特征 + 行为的抽取,是一个抽象的概念。

计算机中的类和对象

Scanner:类,包含有键盘输入的相关方法(行为)。

每次使用都要先创建该类的对象。(是类的一个具体实例)

----------------------------------------------------------------------------------------------------------

类是对象的抽象概念,在计算机中想要描述生活中的对象,首先要将这些对象的特征+行为提取出来,然后定义好类。

对象是类的抽象实例,在使用面向对象编程思想进行开发时,当需要实现一个功能时,创建一个相应的对象即可。

类和对象定义

类的定义

访问权限修饰符 class 类名{
    // 特征/属性/成员变量
    访问权限修饰符 数据类型 属性名;
    // ....
    
    // 行为/方法/成员变量
    访问权限修饰符 返回值类型 方法名([形式参数列表]){
        // 方法体
        [return 返回值];
    }
}

需求:小明今年18岁,每天早上不吃饭就去跑步,小花今年17岁,每天早上吃完饭再去跑步

 分析:

        该需求中存在两个对象(小明、小红)

        小明

                特征:

                        姓名:小明

                        年龄:18

                行为:

                        跑步

        小红:

                特征:

                       姓名:小明

                        年龄:17

        行为:

                       跑步

                       吃饭

两个对象具有相似的特征和行为,属于一个类别

定义类

public String name;
	public int age;
	
	public void run() {
		System.out.printf("%s今年%d岁,正在跑步!\n", name, age);
	}
	
	public void eat() {
		System.out.printf("%s今年%d岁,正在吃饭!\n", name, age);
	}

输出

Student stu = new Student();
		stu.name = "小明";
		stu.age = 18;
		stu.run();
		Student stu1 = new Student();
		stu1.name = "小红";
		stu1.age = 17;
		stu1.eat();
		stu1.run();
	}

 需求:大黄看到熟人就摇尾巴,看到生人就汪汪叫。

 该需求中存在1个对象(大黄)

大黄:

        特征:

                姓名:大黄

                颜色:黄色

        行为:

                摇尾巴

                汪汪叫

按照该特征和行为定义一个狗类

定义类

	
	public String name;
	public String color;
	
	public void shake() {
		System.out.printf("一只%s色的名叫%s的狗,看到熟人就汪汪叫\n", color, name);
	}
	public void shout() {
		System.out.printf("一只%s色的名叫%s的狗,看到生人就汪汪叫", color, name);
		
	}

输出

Dog dog = new Dog();
		dog.name = "大黄";
		dog.color = "黄色";
		
		dog.shake();
		dog.shout();

 对象的定义

// 创建对象
类名 对象名 = new 类名([参数列表]);
// 使用对象的属性和方法
对象名.属性名 = 属性值;
对象名.方法名(参数列表);

 例如:Scanner

// 创建对象
Scanner input = new Scanner(System.in);
// 使用对象的属性和方法
input.nextInt();

 UML-类图

UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。

截止UML2.0一共有13种图形(UML1.5定义了9种,2.0增加了4种)。分别是:用例图、类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图9种,包图、组合结构图、交互概览图3种。

类图:描述系统中类的静态结构。

类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。类图表示类、接口和它们之间的协作关系。

在线绘制:

        https://app.diagrams.net/

        ProcessOn

方法概述

当在程序中想要复用一些数据时,往往会定义一个个的变量,然后就可以在需要使用这些数据地方直接通过变量名来使用。

当你在程序中想要复用一写代码段时,也可以先将这些代码段“存储”为一个个的方法,然后就可以在需要使用这些代码段的地方直接通过方法名来使用。

方法(函数)是个“黑匣子”,完成某个特定的应用程序功能,并返回结果。类的方法定义类的某种行为(或功能)

// 方法声明
[访问权限修饰符][特殊修饰符] 返回值类型 方法名 ([形式参数列表]){
    // 方法体
    [return 返回值];
}

方法根据结构的不同组合方式,一个有四种形态。

        无参无返方法:没有形式参数,也没有返回值

                void :代表没有返回值(返回值类型是空)

                这种方法就是纯粹的存储一段代码,用于实现代码段的复用

        

public void method1(){
    // ...
}

        无参有返方法:没有形式参数,有返回值

                返回值类型由返回值决定

                这种方法一般就是定义了一些纯粹的功能,用于实现一些内容的生成

public int method1(){
    //...
    return 整数;
}

         例如:

                Scanner

                        nextInt() : int

                        nextDouble() : double

                        next() : String

                Math

                        random() : double

        有参无返方法

              println (要打印的内容) : void

                Arrays工具类

                        sort(数组) :void

public void method(int num){
    System.out.println(num);
}

         有参有返方法

                Arrays 工具类

                        toString(数组): String

                        copyOf(数组,新数组长度) : 新数组

                String

                        equals(字符串):boolean        

        有参有返方法:

使用方法:

// 调用无参无返
方法名();

// 调用无参有返
// 数据类型由方法的返回值类型决定
数据类型 变量名 = 方法名();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值