C/C++教程

2021-05-22搭建流水线、描述CPU的速度和硬盘容量

本文主要是介绍2021-05-22搭建流水线、描述CPU的速度和硬盘容量,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

类和对象

 

目录

类和对象

1、前提概要

2、实现一个软件的过程是什么?

3、类、对象、实例、实例化、抽象

(1)类

①介绍

②类的语法规则

(2)对象

(3)实例

(4)实例化

(5)抽象

 4、方法

1、介绍

2、方法的语法规则

5、类的UML图

6、本次例子1搭建流水线(计算平均分,制作歌唱大赛打分系统【去掉最高和最低分,然后求平均值】)

<1>源代码

<2>运行结果

7、本次例子2描述CPU的速度和硬盘容量

<1>源代码

<2>运行结果


1、前提概要

之前稍微介入了一点面向对象的概念,重点介绍了面向对象的三个特性“封装”、“继承”、“多态”,我用很通俗的语言重点说明了前两种特性,“封装”就是包装,把源代码包装好,让用他的人知道他到底是干什么用的就可以,不需要让他知道是如何达成需求的;“继承”就是现实世界的继承、传承,子类有父类的特征、特性、方法,同时子类也可以拥有一些自己的东西,而这些东西父类并没有;“多态”就是,一堆特性、特点的统一接口。

2、实现一个软件的过程是什么?

软件的实现并不是仅仅依靠编程就可以的,软件的现实是先分析,再设计,最后在编程。这里涉及到了软件工程的相关知识。

3、类、对象、实例、实例化、抽象

(1)类

①介绍

首先,类是一个不存在的事物,也可以是它就不是个东西,他只是一个概念,就像动物类、书类,它们没办法代表任意一本书,或者一个动物,就像在生物中的分类法里有“界、门、纲、目、科、属、种...”这些都是类,他只是一个人类大脑思考所总结出来的模板,而在这个模板中它所描述的是一个共同特征。举一个很简单的例子,在学生时期老师总是说“有些同学啊!败坏校风班风,铤而走险上课吃辣条!”这里老师所说的“有些同学”就是一个类,它所描述的是一个特征“上课吃辣条”,它代表的是具有这一特征的所有实体。

②类的语法规则

public class 类名{
     //属性
    public [static void] 特点1(){//方法(描述行为动作)

   }
    public [static void] 特点2(){

   }
  .....
}

(2)对象

520、521刚过去,可不敢说对象不是个东西,会挨打的!!对象是一个真实存在的个体,他具备一些属性、特征等,都是类赋予他的。

(3)实例

实例就是对象的另一个称呼。这里就涉及了解三种变量,实例变量、成员变量和局部变量。实例变量在某种意义上就是成员变量,他们定义在方法体外,可以被给予默认值,他们的存在就像上个世纪的大学生,当时的大学生是有工作分配的,可见这两个变量地位、权力非同一般,他们可以作用于这一面的整个程序,但是对成员变量的操作只能在方法体中。而局部变量就像保密员,一旦出了大括号,方法体就不认识了,想在大括号、方法体外去调用局部变量,那是不可能的,同时他们没有默认值,必须由程序员手动赋值

(4)实例化

它代表通过类这个模板创建对象的过程。例如上面说到学生时代,老师会说“有些同学啊!败坏校风班风,铤而走险上课吃辣条!尤其是张三!”张三就是这个“吃辣条”类的实例化。、

(5)抽象

抽象的意思就是多个对象具有的共同特征,进行总结思考抽取共同特征的过程。例如在学生时代张三上课玩手机、李四上课玩手机、王二麻子上课也玩手机,老师就会说“你们这些上课玩手机的学生,放学把你们家长叫过来我办公室喝喝茶。”所以“张三”、“李四”、“王二麻子”就被抽象成了“上课玩手机的学生”。

总结一下类=属性+方法

类、对象(实例)、实例化、抽象之间的关系就如下图:

 4、方法

1、介绍

方法就像C语言中所谓的函数,它由方法体和方法头构成

2、方法的语法规则

方法头{
     方法体;    
}

5、类的UML图

UML (Unified Modeling Language Diagram, UML)图属于结构图,常被用于描述一个系统的静态结构。一个UML中通常包含类(Class)的UML图、接口(Interface)的UML图、泛化关系(Generalization)的UML图、关联关系(Association) 的UML图、依赖关系( Dependency) 的UML图和实现关系(Realization)的UML图。

6、本次例子1搭建流水线(计算平均分,制作歌唱大赛打分系统【去掉最高和最低分,然后求平均值】)

<1>源代码

//搭建流水线,计算分数评定程序,去掉一个最高分一个最低分,然后算平均分
import java.util.Scanner;
import java.util.Arrays;
class Input{
	Del dele;
	Input(Del d){
		dele=d;
	}
	void input(){
		
		System.out.println("请输入评委个数:");
		Scanner s=new Scanner(System.in);
		int count=s.nextInt();
		System.out.println("请输入评委分数:");
		double a[]=new double[count];
		for(int i=0;i<a.length;i++){
			a[i]=s.nextDouble();
		}
		dele.del(a);
	}
}
class Del{
	ComputerAverage com;
	Del(ComputerAverage c){
		com=c;
	}
	void del(double a[]){
		Arrays.sort(a);
		double b[]=new double[a.length-2];
		for(int i=0;i<b.length;i++){
			b[i]=a[i+1];
		}
		com.average(b);
	}
}
class ComputerAverage{
	double sum;
	void average(double b[]){
		for(int i=0;i<b.length;i++){
			
			sum=sum+b[i];
		}
		double aver=sum/b.length;
		System.out.println("选手最后得分为:"+aver);
	}
}
class Line{
	Input one;
	Del two;
	ComputerAverage three;
	Line(){
		three=new ComputerAverage();
		two=new Del(three);
		one=new Input(two);
	}
	void giveScore(){
		one.input();
	}
}
public class Experiment06{
	public static void main(String args[]){
		Line line=new Line();
		line.giveScore();
	}
}

<2>运行结果

7、本次例子2描述CPU的速度和硬盘容量

<1>源代码

//CPU简介
class PC{
	CPU cpu;
	HardDisk HD;
	void setCPU(CPU c){
		cpu=c;
	}
	void setHardDisk(HardDisk h){
		HD=h;
	}
	void show(){
		System.out.println("CPU的速度为:"+cpu.getSpeed());
		System.out.println("硬盘容量为:"+HD.getAmount());
	}
}
class CPU{
	int speed;
	void setSpeed(int m){
		speed=m;
	}
	int getSpeed(){
		return speed;
	}
}
class HardDisk{
	int amount;
	void setAmount(int m){
		amount=m;
	}
	int getAmount(){
		return amount;
	}
}
public class Experiment05{
	public static void main(String args[]){
		CPU cpu=new CPU();
		cpu.setSpeed(2200);
		HardDisk disk=new HardDisk();
		disk.setAmount(200);
		PC pc=new PC();
		pc.setCPU(cpu);
		pc.setHardDisk(disk);
		pc.show();
	}
}

<2>运行结果

 

今天的文章到此结束,祝520、521的你们百年好合,永远幸福!

这篇关于2021-05-22搭建流水线、描述CPU的速度和硬盘容量的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!