1算计概述与抽象数据类型

开发环境
1JDK1.8.0
2IntelliJ IDEA 2018
3Win10系统

算法基本概念:算法Algorithm,是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或者多个操作。

算法特特点:
  1有穷性:指令序列是有限的
  2确定性:每条语句的含义明确,无二义性
  3可行性:每条语句都应在有限的时间内完成
  4输入:零个或多个输入
  5输出:一个或多个输出

算法和程序的区别
程序:程序是软件开发人员根据用户需求开发的,用程序设计语言描述的适合计算机执行的指令或者语句序列。
程序包含:1 数据结构  2 算法  3程序设计方法   4 编程语言

数据类型
  数据类型:是指一个值的集合和定义在集合上的操作集合。例如java的整数类型(Integer),就不仅仅表示整数数值的集合,还包括对整数类型进行的操作集合,加,减,乘,除,模等操作
  我们通常所指的数据类型是某种高级语言支持的基本数据类型,比如java的基本数据类型:int, double, float, char等等

抽象数据类型
抽象数据类型:一个数学模型以及定义在这个模型上的一组操作
看起来抽象数据类型和数据类型的定义基本相同。不同点在于:数据类型通常是指某种高级语言的,而抽象数据类型用户重新设计,一种概念。这里的“抽象”的含义在于数学抽象

原子类型:比如整型
固定聚合类型:比如复数,两个实数确定的次序构成
可变聚合类型:比如汽车类型,构成的成分是不确定的(因为小轿车,大卡车的构成是不同的)

抽象数据类型抽象的层次越高,那么可复用性也越高
比如:java中的Object是对所有对象的抽象,那么就可以作为所有类的父类
例如:如下定义学生抽象数据类型
学号;姓名;性别;出生日期;专业;电子邮箱;联系方式

import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.util.Date;
//设计一个学生类
public class Students {
    String sid; //学号
    String name; //姓名
    char gender; //性别
    Date birthday; //出生日期
    String contact;//地址

    public Students(String sid, String name, char gender, Date birthday, String contact) {
        this.sid = sid;
        this.name = name;
        this.gender = gender;
        this.birthday = birthday;
        this.contact = contact;
    }

    void printStudentsInfo() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyy年MM月dd日");
        System.out.println("学号: " + this.sid);
        System.out.println("姓名: " + this.name);
        System.out.println("性别:" + this.gender);
        System.out.println("出生日期:" + sdf.format(this.birthday));
        System.out.println("联系方式: " + this.contact);
    }
    public static void main(String[] args){
        Calendar c = Calendar.getInstance();
        c.set(1995, 5, 30);
        Date d = c.getTime();
        Students s = new Students("S0001", "张三丰", '男', d, "北京市海淀");
        s.printStudentsInfo();
    }
}
运行结果:
学号: S0001
姓名: 张三丰
性别:男
出生日期:1995年06月30日
联系方式: 北京市海淀
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值