美文网首页
JAVA基础(二)

JAVA基础(二)

作者: Roper_被注册 | 来源:发表于2018-06-16 21:26 被阅读0次

switch语句的格式?针对格式的解释?以及注意事项?

switch(表达式) {
          case 值1:
            语句体1;
            break;
            case 值2:
            语句体2;
            break;
            …
            default:    
            语句体n+1;
            break;
    }
格式解释:表达式的取值:byte,short,int,char;
          case后面要跟的是要和表达式进行比较的值;
          语句部分可以是一条或多条语句;
          break表示中断,结束的意思,可以结束switch语句;
          default语句表示所有情况都不匹配时候,就应该执行该处的内容,和if语句的else相似;
注意事项:
case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
default可以省略吗?
可以省略。一般不建议。除非判断的值是固定的。(单选题)
break可以省略吗?
可以省略,一般不建议。否则结果可能不是你想要的
default的位置一定要在最后吗?
可以出现在switch语句任意位置。
switch语句的结束条件
遇到break
执行到程序的末尾

看程序,分析下面程序的结果:

int x = 2,y=3;

switch(x)
{
default:
y++;
case 3:
y++;
break;
case 4:
y++;
}

System.out.println("y="+y);

答:y=5;break语句在case 3中,先执行了default的y=y++,y==4;然后执行case 3中的y++,y==5;然后执行break;

根据输入的值,判断是星期几。(分别用if语句和switch语句实现)

输入:1     
    输出:星期1

public static String If04(int s){
if(s==1) {
return "星期"+ s;
}
else if(s==2) {
return "星期"+ s;
}
else if(s==3) {
return "星期"+ s;
}
else if(s==4) {
return "星期"+ s;
}
else if(s==5) {
return "星期"+ s;
}
else if(s==6) {
return "星期"+ s;
}
else if(s==7) {
return "星期天";
}else {
return "请输入正确的星期数字";
}
}

public static String For04(int s) {
    switch(s) {
    case 1:
        return "星期"+ s;
    case 2:
        return "星期"+ s;
    case 3:
        return "星期"+ s;
    case 4:
        return "星期"+ s;
    case 5:
        return "星期"+ s;
    case 6:
        return "星期"+ s;
    case 7:
        return "星期天";
        default:
            return "请输入正确的星期数字";
    }

for循环的格式?要能看懂执行流程。

for(初始化语句;判断条件语句;控制条件语句) {
         循环体语句;
    }
    
执行流程
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续

用for循环完成如下案例

九九乘法表

for(int i=1;i<10;i++) {
for(int j=1;j<10;j++) {
if(j==1) {
System.out.println("");
}
System.out.print(i+""+j+"="+ij+" ");
}
}

while循环的格式?要能看懂执行流程

基本格式

while(判断条件语句) {
循环体语句;
}

扩展格式

初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}

用while循环完成如下案例

我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?

    int high=8848;
    double page=0.01;
    int i=0;
    while(high>=page) {
        page=page*2;
        i++;
    }
    System.out.println("纸有"+page+"米,"+"折叠"+i+"次");
}

break,continue和return分别有什么用?

break退出当前循环;
continue退出本次循环;
return关键字不是为了跳转出循环体,更常用的功能是结束一个方法,也就是退出一个方法。跳转到上层调用的方法。

函数的概念?函数的格式?格式的解释说明

函数在JAVA中称之为方法;
格式为:修饰符 返回值类型 方法名(参数类型 参数名1,参数名2……){
    函数体;
    return 返回值;
}
  • 方法(函数)格式说明:
    修饰符比较多;
    返回值类型用于限定返回值的数据类型;
    方法名一个名称;
    参数类型,限定调用方法时传入参数的数据类型;
    参数名,一个变量,接受调用方法时传入的参数;
    方法体(函数体) 完成功能的代码;
    return 结束方法以及返回方法指定类型的值;
    返回值,程序被return带回的结果,返回给调用者;

函数的调用

明确返回值类型的函数调用

单独调用,没有意义
输出调用,有意义,但是不够好,因为我不一定非要把结果输出    
赋值调用,推荐方式

void类型的函数调用

其实就是void类型方法的调用
只能单独调用

函数的练习:

A:求两个数据之和
B:判断两个数据是否相等
C:获取两个数中较大的值
D:打印m行n列的星形矩形
E:打印nn乘法表
public static void main(String[] args) {
        // TODO Auto-generated method stub
        int m=3,n=6;
        System.out.println(add(m,n));
        System.out.println(equle(m,n));
        System.out.println(conpl(m,n));
        martix(m,n);
        chengfabiao(n);
    }
    
    public static int add(int m,int n) {
        return m+n;
    }
    
    public static boolean equle(int m,int n) {
        return(m==n);
    }
    
    public static int conpl(int m,int n) {
        return (m>n)?m:n;
    }
    
    public static void martix(int m,int n) {
        for(int i=0;i<m;i++) {
            for(int j=0;j<n;j++) {
            System.out.print("*");
            }
            System.out.println();
        }
    }
    
    public static void chengfabiao(int n) {
        for(int i=0;i<n;i++) {
            for(int j=0;j<n;j++) {
                System.out.println(n+"阶乘法表"+i+"*"+j+"="+i*j);
            }
            System.out.println();
        }
    }

什么是函数重载?以及函数重载的练习?把讲过的案例练习一次即可

在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

数组的概念?有什么特点?

数组是存储多个变量(元素)的东西(容器)

数组多个变量的数据类型要一致

一维数组的定义格式?

格式1:数据类型[] 数组名;
格式2:数据类型 数组名[];

:数组操作的两个小问题

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型[] 数组名 = new 数据类型[数组长度];
数组长度其实就是数组中元素的个数。
举例:
int[] arr = new int[3];
解释:定义了一个int类型的数组,这个数组中可以存放3个int类型的值。

数组常见操作:

数组遍历(依次输出数组中的每一个元素)
数组获取最值(获取数组中的最大值最小值)
数组元素逆序 (就是把元素对调)
数组查表法(根据键盘录入索引,查找对应星期)
数组元素查找(查找指定元素第一次在数组中出现的索引)

public static void main(String[] args) {
    // TODO Auto-generated method stub
    int m=3,n=6;
    int[] a= {1,5,6,34,6,-5};
    System.out.println(add(m,n));
    System.out.println(equle(m,n));
    System.out.println(conpl(m,n));
    martix(m,n);
    chengfabiao(n);
    matrix_featch(a);
    matrix_max_min(a);
    matrix_change(a);
    matrix_find(a);
}

public static int add(int m,int n) {
    return m+n;
}

public static boolean equle(int m,int n) {
    return(m==n);
}

public static int conpl(int m,int n) {
    return (m>n)?m:n;
}

public static void martix(int m,int n) {
    for(int i=0;i<m;i++) {
        for(int j=0;j<n;j++) {
        System.out.print("*");
        }
        System.out.println();
    }
}

public static void chengfabiao(int n) {
    for(int i=0;i<n;i++) {
        for(int j=0;j<n;j++) {
            System.out.println(n+"阶乘法表"+i+"*"+j+"="+i*j);
        }
        System.out.println();
    }
}

public static void matrix_featch(int[] a) {
    for(int i=0;i<a.length;i++) {
        System.out.println(a[i]);
    }
}

public static void matrix_max_min(int[] a) {
    int max=a[0];
    int min=a[0];
    for(int i=1;i<a.length;i++) {
        if(a[i]>max) { 
            max=a[i];
        }
        if(a[i]<min) {
            min=a[i];
        }
    }
    System.out.println("max:"+max+",min:"+min);
    }

public static void  matrix_change(int[] a)  {
    for(int start=0,end = a.length-1;start<end;start++,end--) {
        int temp=a[end];
        a[end]=a[start];
        a[start]=temp;
    }
    System.out.println(Arrays.toString(a));
}

public static int matrix_find(int[] a) {
    Scanner scan=new Scanner(System.in);
    int b=scan.nextInt();
    for(int i=0;i<a.length;i++) {
        if(b==a[i]) {
            b=a[i];
        }
    }
    return b;
}

##  二维数组定义格式?
数据类型[][] 变量名 = new 数据类型[m][n];
数据类型[][] 变量名 = new 数据类型[m][];
这一次没有直接给出一维数组的元素个数,可以动态的给出。
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};

看懂针对每种格式的内存图解?

案例

### 二维数组遍历
    public static void Matrix2_featch(int[][] a) {
    for(int i=0;i<a.length;i++) {
        for(int j=0;j<a[0].length;j++) {
            System.out.print(a[i][j]+" ");
        }
    }
}

### 公司年销售额求和
    某公司按照季度和月份统计的数据如下:单位(万元)
    第一季度:22,66,44
    第二季度:77,33,88
    第三季度:25,45,65
    第四季度:11,66,99
    public static void Matrix2_SealCount() {
    int[][] a=new int[][] {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
    int count=0;
    for(int i=0;i<a.length;i++) {
        for(int j =0;j<a[i].length;j++) {
            count=count+a[i][j];
        }
    }
    System.out.println(count);
}

### 打印杨辉三角形(行数可以键盘录入)
public static void Yang() {

    Scanner scan=new Scanner(System.in);
    System.out.println("等待输入行数...");
    int NMAX=scan.nextInt();

          int[][] odds = new int[NMAX + 1][];
          for (int n = 0; n <= NMAX; n++)
             odds[n] = new int[n + 1];  
     
          for (int n = 0; n < odds.length; n++)
             for (int k = 0; k < odds[n].length; k++)
             {
                int lotteryOdds = 1;
                for (int i = 1; i <= k; i++)
                   lotteryOdds = lotteryOdds * (n - i + 1) / i;
     
                odds[n][k] = lotteryOdds;
             }
     
          for (int[] row : odds)
          {
             for (int odd : row)
                System.out.printf("%4d", odd);
             System.out.println();
          }
    }

面向对象思想概述和举例

面向对象是基于面向过程的编程思想,强调对象,由对象去调用功能。
  • 举例:

    洗衣服:
    面向过程:把衣服脱下--找一个盆--放点洗衣粉--加点水--把衣服扔进去--搓一搓--清洗衣服--拧干--晾起来
    面向对象:把衣服脱下--打开全自动洗衣机--扔进去--一键即可--晾起来

    吃饭:
    面向过程:去超市买菜--摘菜--洗菜--切菜--炒菜--盛起来--吃
    面向对象:上饭店吃饭,你--服务员(点菜)--厨师(做菜)--服务员(端菜)--吃

类与对象分别是什么,举例说明

JAVA中的类是具备某些共同特征的实体的集合,它是一种抽象的概念;
用程序设计的语言来说,类是一种抽象的数据类型,它是对所具有相同特征实体的抽象;

对象就是真实世界中的实体,对象是一种具体的概念;
类是对象的集合,对象是类的实例;

如何定义一个类,类的组成

class 类名{
成员变量类型变量名称
…………    
}
例如定义学生类
public class Student{
    String name;
    int age;
    boolean sex;
    char gender;
}

如何使用一个类的成员

使用JAVABean的Set&Get方法;

相关文章

  • java SE目录

    java SE目录 java基础(一)java基础(二)关键字面向对象(一)面向对象(二)面向对象(三)集合(一)...

  • java基础:Enum — 源码分析

    其他更多java基础文章:java基础学习(目录) 学习资料Java 7 源码学习系列(二)——EnumJava的...

  • 你所需要的java提升篇大总结

    java基础篇深入解析大总结 java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规则 jav...

  • 九章算法课程顺序

    第1周 第一周: Java与算法基础入门 Java 语法基础 Introduction to Java 变量,二进...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

  • 聊一聊对于java并发基础的认知(一)

    聊一聊对于java并发基础的认知(一)聊一聊对于java并发基础的认知(二) 前言 对于java并发程序,我们首先...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • 2018-2019 目标技术栈

    一、java基础 1.Java 集合 2.Java 线程 3.Java io变成 4.Java 网络编程 二、my...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • JAVA基础(二)

    switch语句的格式?针对格式的解释?以及注意事项? 看程序,分析下面程序的结果: int x = 2,y=3;...

网友评论

      本文标题:JAVA基础(二)

      本文链接:https://www.haomeiwen.com/subject/tmzbeftx.html