0
点赞
收藏
分享

微信扫一扫

java入门---方法method(尚马day04)

花海书香 2022-02-14 阅读 85

回顾

1. 第一天
HelloWorld.java
public class 类名{ //大写驼峰
   //程序的入口  main
   public static void main(String[] aaa){
      //逻辑功能代码
   }
}
注释:
  单行注释 //  ctrl+/
  多行注释  /*  */  ctrl+shift+/
  文档注释  /** 
            *
            */
      
配置jdk环境变量:
   1.1 path: jdk的bin目录   bin有很多exe  java  javac 
   1.2 JAVA_HOME: jdk的根目录   path: %JAVA_HOME%\bin   
   
java程序的运行:
   1.1 创建java文件   HelloWorld.java
   1.2 编译java程序   javac HelloWorld.java
   1.3 运行class文件  java HelloWorld
   
数据类型:
  1.1 引用数据类型  数组  类  接口  
  1.2 基本数据类型 
      4类八种  
         整数类型  byte  short  int  long   0
         小数类型  float  double  0.0
         布尔类型  boolean  true  false
         单字符类型  char  'a'  \u0000
  1.3 变量: 代表内存中的数据   
      1. 全局变量
         [访问权限修饰符] [普通修饰符] 数据类型  变量名称 = 数据;
      2. 局部变量
          [普通修饰符] 数据类型  变量名称 = 数据;  int num = 100;
      
 1.4 数据类型转换
       byte-->short-->char-->int-->long-->float-->double
      1. 自动转换
           低精度的数据自动转换成高精度的数据  
           short s = 100;
           long lon =s;
      2. 强制转换
         高精度的数据转换成 低精度的数据
           double  d = 10.12345;
           int num = (int)d;  //  对于基本数据类型而言  数据溢出
​
1.5 运算符
​
1.6 流程控制语句
    顺序结构
    分支结构
       1. 条件判断  if  else if  else
       2. 条件选择 switch case break  default    ---> 等值判断
       switch(数据){// byte short  int  char String enum
         case 1:
           break;
       }
    循环结构
      1. while
      2. do..while
      3. for
      4. 增强for循环: 目前只适合于遍历数组
      
   关键字:
     break: 与switch和循环  代表跳出当前的switch和循环
     continue:循环  代表跳过本次循环  继续执行以下循环
     
      if(){}
​
1.7 数组 []  
 定义: 存储相同类型的指定length个数据。 容器  空间固定的 
 语法:
   [普通修饰符] 数据类型[] 数组名称/变量/引用 = new  数据类型[length];
​
// 初始化:  在内存占据一定空间 且赋值(数组元素) 
int[] array = new int[4];
​
//操作数组元素: index    0-length-1
//1. 新增/修改 array[0] = 100;
//2. 删除   移动位置
//3. 遍历/查询
for(int a:array){
    //a就是维护数组里面的每个数据
}
​
//1.NPE 空指针 变量=null
//2.ArrayIndexOutofBoundException   index 

每日随机

public static void main(String[] args) {
    //摇号  1-30
    //double randomNum = Math.random()*30+1;//0.0-30.0  包头不包尾
    //System.out.println(randomNum);
    //1000-10000
    //(Math.random()*9000+1000)
    int[] array = {5};//维护之前随机过的数字
    //循环遍历 参与过这些号码
    int num;
    while (true) {
        boolean flag = false;
        num = (int) (Math.random() * 30 + 1);
        for (int i : array) {
            if (num == i) {
                flag = true;
                break;
            }
        }
        //从开始到末尾一直比较  都与随机数字不等的话 结束外层循环
        if (!flag) {
            break;
        }
    }
    System.out.println("随机的数字:" + num);
​
}

方法

//psvm/main
public static void main(String[] args) {
​
}

1. 组成部分

[1. 访问权限修饰符]   public 公共的  private  protected 默认/缺省
[2. 普通修饰符]       static 静态的  final  synchronized  native  abstract
3. 方法的返回值类型----> 所有的数据类型都可以充当方法的返回值类型
    ---> 只能返回一种数据类型
    1.1 void 无返回值类型---> Void类   
    1.2 有返回值类型
    
4. 方法名称----> 变量名  类名  方法名 都属于标识符。只要自己命名的东西
      ---> 规范: 小写驼峰  目前方法名唯一
      
5. 形式参数---->形参
    1.1 无参 a()
    1.2 有参 所有的数据类型都可以充当参数   b(int a,String s)
        其实就是局部变量
 [6. {}]   方法体  编写功能代码

2. 分类

1.1 无参无返回值
1.2 无参有返回值
1.3 有参无返回值
1.4 有参有返回值

3. 自定义方法

3.1 无参无返回值

//方法与方法之间是平级的关系
//创建无参无返回值方法
public static void demo() {
    System.out.println("demo.............");
}
​
public static void a() {
    System.out.println("a.............");
}

  //方法入栈 先进后出
    public static void main(String[] args) {
        System.out.println("main开始....................");
​
        //调用a方法
        a();
​
        System.out.println("main结束....................");
    }

3.2 无参有返回值

//需求: 模拟用户登录
public static boolean userLogin() {
​
    String username = "admin";
    String password = "admin";
    Scanner input = new Scanner(System.in);
    System.out.println("请录入用户名:");
    String name = input.nextLine();
​
    System.out.println("请录入密码:");
    String pass = input.nextLine();
​
    if (!username.equals(name) || !password.equals(pass)) {
        return false;
    }
​
    //jdhffgd
    return true;
}

public static void main(String[] args) {
​
        System.out.println("main开始....................");
​
        //调用demo方法
        //对于方法的返回值  谁调用它  就把数据返给谁
        //int num = demo();//接收返回值
        //int result = num + 100;
​
        if(userLogin()){
            System.out.println("登录成功");
        }else{
            System.out.println("登录失败");
        }
        System.out.println(userLogin());
​
        System.out.println("main结束...................." );
​
    }

3.3 有参无返回值

1. 基本数据类型

//创建有参无返回值
//形式参数: 参数个数  参数类型
public static void demo1(int num1) {
    System.out.println("demo1.。。。。。。。。。。。");
    if (num1 < 0) {
        System.out.println("num1是一个负数");
        return;
    }
    num1 += 100;
    System.out.println("num1运算之后的数据:" + num1);//200
}

 public static void main(String[] args) {
​
        System.out.println("main开始..................");
        //调用方法
        //调用有参的方法  必须传参  实际参数---> 实参
        //int num1 = 100;
        //demo1(num1);
        System.out.println("main结束..................");
​
        //System.out.println("main里面的num1的数据:" + num1);
        //参数传递: 基本数据类型作为形参  传递的是数据
​
    }
​

2. 引用数据类型_数组

//修改数组的第一个数据
public static void demo2(int[] array) {
    //提前预判 避免出现一些不正常的现象
    if (array == null) {
        System.out.println("参数不能为null");
        return;
    }
    int length = array.length;
    if (length == 0) {
        System.out.println("[]");
        return;
    }
​
    array[0] = 100;
    //遍历所有的数据
    /*for (int i : array) {
            System.out.println("元素是:" + i);
        }*/
    System.out.println("demo2修改之后的数组元素:" + Arrays.toString(array));//[100, 2, 3]
}

public static void main(String[] args) {
​
    System.out.println("main开始..................");
​
    //int[] array = new int[]{1, 2, 3};
    //demo2(array);
    //System.out.println("main里面的array的数据:" + Arrays.toString(array));// [1,2,3] [100,2,3]
}

3. 引用数据类型_String

public static void demo3(String str) {
    System.out.println("demo3修改之前的数据:" + str);
    str = "hello";
    System.out.println("demo3..........str:" + str);
}
String str = "abc";
demo3(str);
System.out.println("main里面str的数据:" + str);//hello  abc   String的数据不可变的 常量 final char[] value;

4. 可变参数

//用户注册
//用户名  密码  年龄  简介---> 获得数据数量不固定的
//不清楚具体传输多少个数据的时候  可以使用可变参数进行维护
//数据类型...变量名称
//一个方法里面有且只有1个可变参数  必须在方法形参的最后一个位置上
//可变参数就是一个一维数组   传参的时候可以传递>=0个数据
//底层使用的时候比较多。 封装的时候   反射
​
public static void userRegister(String... params) {
    System.out.println("params:" + Arrays.toString(params));//[]
}

3.4 有参有返回值

/**
     * 模拟实现计算器功能
     *
     * @param num1     第一个数字
     * @param num2     第2个数字
     * @param operator 运算符
     * @return 运算之后的结果
     */
public static double cal(int num1, int num2, String operator) {
    if ("/".equals(operator) || "%".equals(operator)) {
        if (num2 == 0) {
            System.out.println("除数不能为0");
            //不需要返回数据  还要结束当前这个方法  终止当前程序
            //1.可以使用手动产生异常  throws
            //2.System.exit(-1);
            System.exit(-1);//终止当前程序
        }
    }
    double result = 0;
    switch (operator) {
        case "+":
            result = num1 + num2;
            break;
        case "-":
            result = num1 - num2;
            break;
        case "*":
            result = num1 * num2;
            break;
        case "/":
            result = num1 / num2;
            break;
        case "%":
            result = num1 % num2;
            break;
        default:
            System.out.println("录入运算符不符合要求!");
            System.exit(-1);
    }
    return result;
}

举报

相关推荐

前端JavaScript入门-day04

JAVA基础day04

day04

Day04

day04作业

0 条评论