浅析面向过程、面向对象、面向接口编程三者区别 及 抽象数据类型与类

面向过程编程

即一堆方法(函数),调来调去;

“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,

就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

面向对象编程

以对象为核心,围绕对象做操作;

面向接口编程

面向对象的基础上,抽象接口,复用性好,可维护性好,移植性好...

 

什么是抽象数据类型

所谓抽象数据类型可以理解为:将不同类型的数据的集合组成一个整体用来描述一种新的事物。

什么是类

1、类定义了一种数据类型

2、类不但定义了抽象数据类型的组成(成员变量),同时还定义了可以对该类型实施的操作(方法)

ex://定义学生类

public class student{
    string name;//定义数据类型
    int age;
    string adress;
    void study(){//定义方法
    }
}

3、类是一种数据类型

4、现实世界是由很多的对象组成的,现实世界是先有对象,再抽象出类;代码中是先创建类,再创建对象。

创建对象语法:

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

5、一个类可以创建多个对象,同一个类的多个对象,结构相同,数据不同。

 

理解练习——简化的俄罗斯方块

任务要求:

1、以“------------------------”表示墙;“*”表示方块;

2、墙为10*20 的“-”大小;

3、输出cell位置;

4、键盘输入 数字键1:左移  数字键 2:下移、数字键3:右移 打印相应结果。

源代码:

cell类

package Tetris;

public class cell {
	//定义坐标
	int row;
	int col;
	//定义下落方法
	void drop(){
		row++;
	}
	//定义左移方法
	void moveLeft(int step){
		col-=step;
	}
	//定义右移方法
	void moveRight(int step){
		col+=step;
	}
	//返回cell坐标
	String cellLocal(){
		return row+","+col;
	}
}

cellGame

package Tetris;

import java.util.Scanner;

public class cellGame {
	public static void main(String[] args){
		int step = 0;
		cell c = new cell();
		c.row = 2;
		c.col = 5;
		System.out.print("-----绘制Cell-----\n 1:左移;2:下移;3:右移;0:退出 \n");
		c.cellLocal();
		print(c);
		while(true){
			int input;
			Scanner scanner = new Scanner(System.in);
			input = scanner.nextInt();
			if(input==0){
				System.out.print("-----游戏结束----- ");
			}
			if(input==1){
				System.out.print("-----左移1列-----\n");
				c.moveLeft(++step);
				c.cellLocal();
				print(c);
			}
			if(input==3){
				System.out.print("-----右移1列-----\n");
				c.moveRight(++step);
				print(c);
			}
			if(input==2){
				System.out.print("-----下移1列-----\n");
				c.drop();
				print(c);
			}
		}
	}
	public static void print(cell c){
		System.out.print("Cell的位置为("+c.col+","+c.row+")\n");
		for(int i=0;i<20;i++){
			for(int j=0;j<10;j++){
				if(i==c.row&&j==c.col){
					System.out.print("* ");
				}else{
					System.out.print("- ");
				}
			}
			System.out.print("\n");
		}
	}
}

安利一门Java超级好课!
扫码下单输优惠码【csdnfxzs】再减5元,比官网还便宜!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值