• java基础---4. 方法


    1. 定义和调用一个方法

    • 定义一个方法的格式非常多,这里先学习比较基础的一种定义方式
    public static void 方法名称() {
        //方法体
    }
    

    方法名称的命名规则和变量一样,使用小驼峰。

    • 调用方法
    方法名称();
    

    举例

    public class Demo09Method {
    	public static void main(String[] args) {
    		//调用方法
    		farmer();
    		seller();
    		cook();
    		me();
    	}
    	//定义方法
    	//在“类名后的大括以内”且在“main函数的大括以外”这个层级来定义方法
    	//我
    	public static void me() {
    		System.out.println("吃");
    	}
    	//厨子
    	public static void cook() {
    		System.out.println("洗菜");
    		System.out.println("切菜");
    		System.out.println("炒菜");
    		System.out.println("装盘");
    	}
    	//商贩
    	public static void seller() {
    		System.out.println("运输到农贸市场");
    		System.out.println("抬高价格");
    		System.out.println("吆喝");
    		System.out.println("卖给厨子");
    	}
    	//农民伯伯
    	public static void farmer() {
    		System.out.println("播种");
    		System.out.println("浇水");
    		System.out.println("施肥");
    		System.out.println("除虫");
    		System.out.println("收割");
    		System.out.println("贩卖给商贩");
    	}
    }
    //注意:
    //1. 方法定义的先后顺序无所谓
    //2. 方法的定义不可产生嵌套包含关系 比如不可以在cook里面定义me
    

    2. JDK的jshell

    jshell类似于python中的idle,轻量级,在cmd中输入jshell即可进行jshell脚本,在jshell中输入/exit即可推出jshell而重新进入cmd

    C:UsersRuanc>jshell
    |  欢迎使用 JShell -- 版本 9.0.4
    |  要大致了解该版本, 请键入: /help intro
    
    jshell> System.out.println("Hello,World!")
    Hello,World!
    
    jshell> int a = 10
    a ==> 10
    
    jshell> int b = 20;
    b ==> 20
    
    jshell> int result = a * b
    result ==> 200
    
    jshell> System.out.println("结果是:"+result)
    结果是:200
    
    jshell> /exit
    |  再见
    
    C:UsersRuanc>
    

    3. 补充内容

    • 第一点
    /*
    对于byte/short/char三种类型来,如果右侧赋值的数值没有超过范围,那么javac编译器将会自动隐含地为我们补上一个强制类型转换(byte)(short)(char)
    
    1. 如果没有超过左侧的范围,编译器补上强制类型转换 
    2. 如果右侧超过了左侧的范围,那么直接编译器报错
    */
    
    public class Demo10Notice {
    	public static void main(String[] args) {
    		//byte类型
    		//30是int,但是没有超过byte范围,所以不报错(原因:隐含了一个强制类型转换)
    		byte num1 = 30;//等效于byte num1 = (byte)30;
    		System.out.println(num1);//30
    		
    		//130是int,右侧超过byte的范围
    		//byte num2 = 130;//报错
    		
    		//char类型
    		//65是int,但是没有超过char范围,所以不报错(原因:隐含了一个强制类型转换)
    		char ch = 65;//等效于char ch = (char)65;
    		System.out.println(ch);//A
    	}
    }
    
    • 第二点
    /*
    在给变量进行赋值的时候,若右侧的表达式中全是常量,没有任何变量,那么编辑器javac将会直接将若干个常量表达式计算得到结果。
    这称为"编辑器的常量优化"
    但是注意:一旦表达式中有变量参与,那么就不能进行这种优化了
    */
    public class Demo11Notice {
    	public static void main(String[] args) {
    		
    		short a = 5;
    		short b = 8;
    		//short+short--->int+int--->result应该是int类型
    		//short result = a + b;//写法错误
    		//编辑器的常量优化,虽然5和8默认是int,但是隐含了强制类型转换
    		short result = 5 + 8;
    		System.out.println(result);//13
    		
    		//short result2 = 5 + a + 8;//报错 无法进行常量优化 result2应该定义为int类型
    	}
    }
    
  • 相关阅读:
    Java面試題(实用性高)
    索引的概述?
    给Eclipse提速的7个技巧
    ETL数据仓库
    实用SQL语句大全
    考证
    PL/SQL 程序
    eclipse
    httpd.conf详解,因为php始终报fileinfo扩展无法加载的错
    dockerfile创建镜像及容器
  • 原文地址:https://www.cnblogs.com/deer-cen/p/12180065.html
Copyright © 2020-2023  润新知