zoukankan      html  css  js  c++  java
  • Java学习

    Java 方法

    Java语言没有成员函数,函数声明在类中,称为成员方法。有静态方法和实例方法两种。

    方法声明

    [修饰符] 返回值类型 方法([形式参数列表]) [throws 异常类列表]
    {
    	语句序列;
    	[return [返回值]]
    }
    

    声明 main 方法

    public static void main(String[] args){
    	// insert code...
    }
    

    The method main cannot be declared static; static methods can only be declared in a static or top level type

    被虚拟机调用的主函数必须声明为 public static void main(String args[]){ ... }

    且声明在一级类中或静态类中

    主函数不能直接调用非静态方法,必须先实例化对象,通过定义方法的对象来调用方法。对于静态方法,main函数可以直接通过classname.options()调用

    举例:在类public class HelloWorld中声明main函数和方法public static int binary_search()

    package hehe;
    
    public class HelloWorld {
    	public static void main(String ards[]) {
    		java.util.Scanner sc = new java.util.Scanner(System.in);
    		int arr[];
    		int size = sc.nextInt();
    		arr = new int[size];
    		for(int i = 0; i < size; i++) {
    			arr[i] = sc.nextInt();
    		}
    		
    		while(true) {
    			int cmd = sc.nextInt();
    			if(cmd == -1) {
    				break;
    			}else {
    				int val = sc.nextInt();
    				int ans = HelloWorld.binary_search(arr,val,0,size-1);
    				if(ans == -0x3fff) {
    					System.out.println("不存在");
    				}else {
    					System.out.println("pos: " + ans);
    				}
    			}
    		}
    	}
    	
    	public static int binary_search(int[] arr,int val,int head,int tail) { // 对于一个有序的非递减数组查找元素val
    		int ans = 0;
    		while(head < tail) {
    			int mid = (head + tail) >> 1;
    			if(arr[mid] > val) {
    				tail = mid - 1;
    			}else if(arr[mid] < val) {
    				head = mid + 1;
    			}else {
    				ans = mid;
    				break;
    			}
    		}
    		if(arr[ans] == val) {
    			return ans;
    		}else {
    			return -0x3fff;
    		}
    	}
    }	
    
    
    

    常见的方法类型的注意事项

    Java不存在默认参数表列,如果需要使用默认参数,应该采用函数重载的形式。

    ---- suffer now and live the rest of your life as a champion ----
  • 相关阅读:
    ros之MarkerArray使用
    boost之进度条工具
    opencv之对比度和亮度的调节
    opencv之通道分离和合并
    opencv之图像叠加与图像混合
    opencv之绘制基本图形
    opencv之几种常用的类型
    opencv之cv::Mat创建
    ros之自定义message
    opencv与eigen类型转换
  • 原文地址:https://www.cnblogs.com/popodynasty/p/13634715.html
Copyright © 2011-2022 走看看