Math类
随机数的生成在JAVA中依靠一个类:Math,这个类中有一个方法专门用来生成随机数.
返回带正号的double值,该值大于等于0.0小于1.0
Math.random();------>[0.0,1.0]
假如我们想要返回[1,6)
(int)(Math.random()*6)+1
输入类型与变量不匹配时
1.hasNextInt
含义:如果通过使用nextint()办法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个Int值,则返回TRUE,返回类型为boolean
同样的还有 hasNextFloat. hasNextDouble, hasNextByte, hasNextboolean
break
1.break 停止的是离它最近的循环(默认)
2.多层循环要是想停止其他的循环,加标签outer1,outer2…
outer://定义标签结束的位置
while(1)
{
while(1)
{
if(i==23)
break outer;//根据标签结束循环
}
}
continue
1.作用:停止本次循环,继续下一次循环(结束的循环是离它近的循环)
2.同样的,多层循环要想停止其他循环,同样加标签即可
return
遇到return 结束当前正在执行的方法.
数组
数组创建
对于数组来说,创建成功后系统会给数组中的元素赋值:
整数型:0
浮点型:0.0
字符型:
Boolean:
数组的基本操作
遍历数组
1.遍历数组使用for循环即可,通过数组的length属性可获得数组的长度
在便利数组时,使用foreach语句会更简单
int arr[][]={{1,2,3},{2,3,4},{3,4,5}};
for(int x[],arr)
{
for(int y,x)
{
System.out.println(y);
}
}
填充替换数组
数组中的元素定义完成之后,可以通过Arrays类的静态方法fill()来对数组中的元素进行替换。fill()方法有两种参数类型:
fill(int []a,int fromIndex,int toIndex,int value)
a:要进行填充的数组
fromIndex:要使用指定值填充的第一个元素的索引(包括)
toIndex:要使用指定值填充的最后一个元素的索引(不包括)
value:要存储在数组所有元素中的值
int arr[]=new int[4];
Arrays.fill(arr,1,2,8);
注:若是指定的索引位置大于或者等于要填充的数组的长度,则会报错
对数组进行排序
通过Arrays类的静态sort()方法可以实现对数组的排序。
Arrays.sort(object)
其中,object是指进行排序的数组名称。
import java.util.Arrays;
public class Train5{
public static void main(String [] args)
{
int arr[]=new int[]={1,5,2,5};
Arrays.sort(arr);
for(int x:arr)
{
System.out.println(x);
}
}
}
复制数组
Arrays类的copyOf()方法与copyOfRange()方法可以实现对数组的复制。copyOf()方法是复制数组至指定长度,copyOfRAnge()方法则将指定数组的指定长度复制到一个新数组中
1.copyOf
copyOf(arr,int newlength)
arr: 要进行复制的数组
newlength:int 型常量,指复制后的新数组的长度。如果新数组的长度大于被复制的数组的长度,则用0填充(根据复制数组的类型来决定填充的值,整型数组用0填充,char型数组则使用NULL来填充),如果新数组的长度小于被复制的数组的长度,则从arr的第一个元素开始截取到满足新数组长度为止
2.copyOfRange
copyOfRange(arr,int formIndex,int ToIndex)
arr:要进行复制的数组对象。
formIndex:指定开始复制数组的索引位置。fromIndex必须在0至整个数组的长度之间(包括)
toIndex:要复制范围的最后索引位置。可大于数组arr的长度。(不包括)
数组查询
Arrays类的binarysearch()方法,可使用二分搜索法来搜索指定数组,以获得指定对象,该方法返回要搜索元素的索引值,
1:
binarySearch(Object[]a,Object key)
a:要搜索的数组
key: 要搜索的值
如果key包含在数组中,则返回搜索值的索引,否则返回-1或者“-”,插入点是搜索键将要插入的那一点,即第一个大于此键的元素索引。
注:必须在进行此调用之前对数组进行排序,如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个
2:
binarySearch(Object[]a,intfromIndex,intToIndex,Object key)
a:要进行检索的数组
fromIndex:指定范围的开始处索引(包含)
toIndex:指定范围的结束出索引(不包含)
key:要搜索的元素
在使用该方法之前同样要对数组进行排序,来获得准确的索引值。如果要搜索的元素key在指定的范围内,则返会索引键的索引;否则返回-1或“-”。如果范围中的所有元素都小于指定的键,则为toIndex(注意,这保证了当且仅当此键被找到时,返回的值将大于等于0)
foreach
是for语句的特殊简化版本
for(元素变量X:遍历对象obj){
引用了x 的JAVA语句
}
foreach的元素变量x,不必对其进行初始化
int arr[][]={{1,2,3},{2,3,4},{3,4,5}};
for(int x[],arr)
{
for(int y,x)
{
System.out.println(y);
}
}
面对对象
对象
通常都会将对象划分成两部分:即静态部分和动态部分。
静态部分:这个部分被称为属性,任何对象都会具备其自身属性。
动态部分:这就是这个人所具备的行为。
面向对象和面向过程的区别
面向对象:注重找"参与者",将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做
面向过程:当事件比较简单的时候,利用面向过程,注重的是事件的具体过程,注重的是过程中的具体行为,以函数为最小单位,考虑怎么做。
二者相辅相成,并不是对立的,解决复杂问题,通过面向对象方式便于我们从宏观上把握事件之间复杂的关系,方便我们分析整个系统:具体到微观操作,仍然使用面向过程方式来处理。
补充:
1:万事万物皆对象。
2:对象:具体的事物,具体的实体
类
类:对对象向上抽取出像的部分,形成类,类是抽象的,是一个模板。
类就是对同一类事物的统称
类是封装对象的属性和行为的载体,反过来说,具有相同属性和行为的一类实体被称为类。
在JAVA中,类中对象的行为是以方法的形式定义的,对象的属性是以成员变量的形式定义的,而类包括对象的属性和方法.
面向对象的三个阶段
(1)面对对象分析OOA
(2)面对对象设计OOD
(3)面对对象编程OOP