您的位置:首页 > 编程语言 > Java开发

JAVA基础课总结四

2015-11-16 23:50 495 查看

控制跳转语句
break和continue
(1)有些时候,我们需要对循环进行一些控制终止,这个时候,就出现了两个关键字:
break和continue
(2)注意事项:
A:它们都必须在循环中(break还可以在switch中。)。
  一般在循环的判断中。
B:如果单独使用break和continue,后面是不能有语句的。
(3)区别:
A:break 结束当前循环。
B:continue 结束本次循环,进入下一次循环。
(4)如何退出嵌套循环:
用带标签的循环。
格式:
标签名1:for(){
标签名2:for(){
标签名3:if()
{
break 标签名1;
}
}
}
return :用来返回结果,结束方法
 
二、函数
 
(1)定义在类中,有特定功能的一段小程序,可以提高代码的复用性和维护性。
(2)函数的格式:
修饰符 返回值类型 函数名(形参类型 形式参数1,形参类型 形式参数2...)
{
函数体;
reutrn 返回值;
}
 
A:修饰符
权限:public private protect 默认  static final
B:返回值类型
程序最终结果的数据类型
C:函数名
其实就是函数的名称,方便我们调用。
D:参数
    形参类型
数据类型
    形式参数
就是接收实际参数的变量
    实际参数
就是实际参与操作的变量(常量)
E:函数体
就是按照正常的逻辑完成功能的代码。
F:返回值
就是程序的最终结果,可以是基本类型也可以是引用类型
G:reutrn 返回值
哪里调用程序,return就把结果返回到哪里。
函数其实是由关键字return让他结束的。
注意:void类型的函数,其实最后一行。默认有一个return;
 
(3)函数的特点:
A:函数与函数之间是平级关系。不能在函数中定义函数。
因为函数体是完成功能的代码是由语句组成的,
所以里面可以由顺序执行语句 选择语句 循环语句 等 各种语句
B:运行特点
函数只有被调用才执行。
C:方法定义的时候参数之间用逗号隔开
D:主函数默认被JVM调用
(4)案例:
有明确返回值的例子:
A:求两个数据的和
public static int sum(int a,int b)
{
return a+b;
}
B:求两个数据的最大值
public static int getMax(int a,int b) //形式参数,形式参数
{
return a>b?a:b;
}
C:比较两个数是否相等
public static boolean compare(int a,int b)
{

return a==b;
}

void类型例子:
A:nn乘法表
B:根据给定的行和列输出一个*组成的长方形
public static void printChangFangXing(int row,int col)
{
for(int x=0; x<row; x++)
{
for(int y=0; y<col; y++)
{
System.out.print("*");
}
System.out.println();
}
}
(5)函数的调用
A:有明确返回值
a:单独调用
一般没有意义。
b:输出调用
但是如果想拿结果继续操作,就有问题了。所以,不好。
c:赋值调用
推荐方式。
 
B:void类型
单独调用
 
      方法间:本类直接调用(带返回值的和不带返回值得,外部类访问成员内部类的方法创建对象调用,局部内部类只能在局部创建对象访问
       类间:静态的类名直接调用,非静态的可以创建对象的创建对象调用
不可以创建对象的用子类的对象访问
      包间:lang下的不用导包,其他的导包,创建对象访问
      项目间:JAR包
(6)方法重载
在同一个类中,函数名相同,参数列表不同(个数不同,对应的类型不同)。
  与返回值类型无关。
 
三、数组
(1)数组是存储同一种类型的多个元素的容器。
     数组既可以存储基本数据类型,也可以存储引用数据类型。
(2)特点:数组中的元素会被自动从0开始编号,方便我们获取。
    (3)数组定义格式
数据类型[] 数组名 = new 数据类型[数组的长度];
   (4)Java内存图:
A:栈
存储局部变量使用。
           局部变量:定义在方法声明或方法中的变量
使用完毕,立马消失。
 
B:堆
所有new出来的或者数组。
a:每一个实体都有地址值
b:每一个实体内的内容都有默认值
整数:0
浮点数:0.0
字符:'\u0000'
布尔:false
              引用类型:null
c:在垃圾回收器空闲的时候被回收。
 
C:方法区:类加载、静态缓存和String常量池,存字节码文件
D:本地方法区: 和系统相关
E:寄存器:给CPU用
 
   备注:null是空常量,是引用类型的,把null赋值给引用类型的数据,就是让这个引用变量不再指向堆内存中的数据,原来指向的内容就成垃圾了
  (5) 数组的初始化
就是为数组开辟连续的内存空间,并为每个数组元素赋予值 
对数组进行初始化
a:动态初始化 只指定长度,由系统给出初始化值
 int[] arr = new int[5]; 

   b:静态初始化 给出初始化值,由系统决定长度
        Int[] arr = {a,b,c};
 
(6)数组操作的常见问题:
A:数组越界异常。你访问了不存在的索引。
ArrayIndexOutOfBoundsException

B:空指针异常。一个实例(对象)已经不存在了,你还去访问它的内容。
NullPointerException
    (7) 数组遍历:就是依次输出数组中的每一个元素。
   数组的属性:arr.length数组的长度
  数组的最大索引:arr.length - 1;
       数组的索引arr[i];
     (8)数组的反转(第一个元素和最后一个元素交换)

public static void reverseArray(int[] arr) {
for (int i = 0;i < arr.length / 2 ; i++) {
//arr[0]和arr[arr.length-1-0]交换
//arr[1]和arr[arr.length-1-1]交换
//arr[2]和arr[arr.lentth-1-2]
//...

int temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
}
}
 
(9)数组查表法(根据键盘录入索引,查找对应星期)

public static char getWeek(int week) {
char[] arr = {' ','一','二','三','四','五','六','日'};
//定义了一张星期表
eturn arr[week];
//通过索引获取表中的元素
}
 
(10)数组元素查找(查找指定元素第一次在数组中出现的索引)
public static int getIndex(int[] arr,int value) {
     for (int i = 0;i < arr.length ;i++ ) {
//数组的遍历
    if (arr[i] == value) {
//如果数组中的元素与查找的元素匹配
return i;
}
}
return -1;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: