/*
java开发流程:思路。 案例:对数组操作。获取最大值。
思路:
1,一组数,要获取最大值,比较。
2,怎么比较?挨个比较,要获取数组中的每一个数据都要比较。
3,比较完,记录下来比较大的数据,并用这个较大的数据和下一个
数据进行比较。
4,如果所有的数据都比较完,那么最后记录的较大的值就是最大值。 步骤:
1,需要一个类。
2,这个类需要独立运行,必须要有main方法。
3,需要有一个数组。
4,每一次较大的数据都有可能不同,需要一个变量。
5,把数组中的数都获取出来。需要遍历。
6,在遍历过程中,需要比较,判断。
7,每满足一次判断条件,就用变量记录较大的值。变量存储。
*/ //代码:
//1,需要一个类。
class ArrayDemo
{
//2,这个类需要独立运行,必须要有main方法。
public static void main(String[] args)
{
//3,需要有一个数组。
int[] arr = {23,12,18,0,1,9,56}; //4,每一次较大的数据都有可能不同,需要一个变量。
int maxValue = arr[0]; //初始化为数组中的任意一个元素。 //5,把数组中的数都获取出来。为了比较。需要遍历。
for(int i = 1;i<arr.length;i++)
{
//6,在遍历过程中,需要比较,判断。
//7,每满足一次判断条件,就用变量记录较大的值。变量存储。
if(arr[i] > maxValue)
{
maxValue = arr[i]; //只要遍历到的元素大于了maxValue,就用
//maxValue记录那个较大的值。
}
}
//8,一旦遍历结束,maxValue中存储的就是该数组中的最大值。
//9,为了显示出最大值,告诉使用者。输出语句。
System.out.println("最大值;"+maxValue);
}
} /*
案例2:又来了一个数组。还要获取最大值。复制代码并改变变量。麻烦。
既然代码不变,为什么不提高这段代码的复用性呢? 复用性。
Java中代码变成一个整体,通过函数体现的。所以函数就是一个类中的功能。
*/
class ArrayDemo2
{
//主函数。(主函数是用来测试功能的。)
public static void main(String[] agrs)
{
int[] arr2 = {23,12,18,0,1,90,56}; //获取最大值,需要一个功能。
int maxValue2 = getMaxValue(arr2);
System.out.println("maxValue2:"+maxValue2);
} //功能。
public static int getMaxValue(int[] arr)
{
int maxValue = arr[0]; for(int i = 1;i<arr.length;i++)
{
if(arr[i] > maxValue)
{
maxValue = arr[i];
}
}
//将最大值返回。
return maxValue;
}
} /*
案例3;继续升级。有很多的类中都有数组。都需要获取其最值。 将操作最大值的功能单独封装到一个类中。
这样使用这个功能只要找到功能所属的类就可以了。 所有的功能都在对象中,只要找到了对象,就可以使用这些功能了。
*/ class ArrayDemo3
{
public static void main(String[] agrs)
{
int[] arr3 = {23,12,180,0,1,90,56}; ArrayTool tool = new ArrayTool(); //获取最大值。
int maxValue3 = tool.getMaxValue(arr3);
System.out.println("maxValue3:"+maxValue3); //int maxVlaue3 = ArrayTool.getMaxValue(arr3); //获取最小值。
int minValue = tool.getMinValue(arr3);
System.out.println("minValue:"+minValue);
}
} class ArrayTool
{
//获取最大值。
public static int getMaxValue(int[] arr)
{
int maxValue = arr[0]; for(int i = 1;i<arr.length;i++)
{
if(arr[i] > maxValue)
{
maxValue = arr[i];
}
}
return maxValue;
} //获取最小值。
public /*static*/ int getMinValue(int[] arr)
{
//code...
return 0;
} //二分查找。折半查找法。
public /*static*/ int binarySearch(int[] arr,int key)
{
//code...
return 0;
}
}

《day06---面向对象入门》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. C++ 迭代器介绍 [转摘]

    转摘地址为:http://blog.chinaunix.net/uid-20773165-id-1847758.html 迭代器 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭 ...

  2. C 语言字符串连接的 3种方式

    C 语言字符串连接的 3种方式 #include<stdio.h> #include<stdlib.h> #include<string.h> char *join ...

  3. java 多线程1

    进程: 线程: 多线程: 假象:只是CPU在做快速的切换 多线程的好处: 1.解决了一个进程里面可以同时运行多个任务(执行路径) 2.提高资源利用率,而不是效率. 多线程的弊端: 1.降低了一个进程里 ...

  4. 例题:输入您的出生日期,判断你的星座,主要练习使用datetime类及if else语句。很实用

    while (true) { Console.WriteLine("请输入您的生日(年-月-日)");//提示输入 string x = Console.ReadLine();// ...

  5. Django开发博客- 部署

    安装Git Git是一个被大量程序员使用的”版本控制系统”.此软件可以跟踪任何时间文件的改变,这样你以后可以随时召回某个特定版本. windows系统下面可以下载git-scm安装.除了第5步”Adj ...

  6. IFE 百度前端技术学院 2016年春季班作业 第一阶段任务(1-4)的总结

    具体任务详细介绍可参考http://ife.baidu.com/task/all 具体代码参考:https://github.com/sunshineqt/webxt/tree/master/stag ...

  7. mvc学习记录

    1.关于mvc中的session在controller中传递 在用mvc开发新项目的时候,不久就遇到一个头大的问题,session在controller中传递居然出现空值,但明明一开始就赋值了,通过度 ...

  8. 盘点十大最流行的Linux服务器发行版

    随着Linux不断发展,Linux所支持的文件系统类型也在迅速扩充.很多的数据中心服务器上都运行着Linux,可以节省大量的许可证费用及维护费用.但伴随着Linux新版本的发行,其中每一个不同版本的L ...

  9. list列表类型

    list类型最典型的应用场景是做队列,相当于C#中的Queue(一般用ConcurrentQueue)队列. 我们可以使用lpush,lpop,rpush,rpop这四个命令来实现,如下图.

  10. 使用SoundPool播放音效

    针对应用程序经常需要播放密集.短促的音效,因为MediaPlayer存在如下缺点: 1.资源占用量较高.延迟时间较长. 2.不支持多个音效同时播放. SoundPool使用音效池的概念来管理多个短促的 ...