JAVASE知識点4:方法(いくつかの一般的なクラスの方法を含む)、break、forサイクルとその変体、foreach、および練習

11215 ワード

public class B {
	public static void f(int a,char c)
	{
		System.out.println(a+" "+c);
		
	}
	public static void main(String[] args) {
		f(1,97);//  ,97   。        byte short char int long float double
	}
}	
package day3_1;
public class B {
	public static void main(String[] args) {
		char a=97;
		System.out.println(a);
	}
}
  :a

1つの方法:
1クラスのメソッドのフォーマット:
アクセス権修飾子その他の修飾子戻り値タイプ関数名(パラメータリスト)
{
メソッドボディ;
}
2完全な関数は宣言部分と実装部分を含む
3役割ドメイン:
アクセス権修飾子(ここでは2つのみ):public,default[アクセス権修飾子を追加していない場合は、デフォルトのアクセス権defaultです.注意:defaultは表示する必要はありません.]
public修飾の変数、メソッド、クラスは、どこでも呼び出すことができます
デフォルトのパーミッション修飾の変数、メソッド、クラス、同じパケットの下でのみ呼び出されます.
静的メソッドは、静的メソッドと静的変数を直接呼び出すことができます.
静的メソッドでは、非静的メソッドと非静的変数を直接呼び出すことはできません.
非静的メソッドは、静的メソッドと静的変数を直接呼び出すことができます.
非静的メソッドは、非静的メソッドと非静的変数を直接呼び出すことができます.
静的メソッドまたは変数が同じメモリ領域にある
4 1つの関数で1つの関数を呼び出すことができますが、1つの関数で1つの関数を宣言することはできません.
5 int x=1,y=2;//実参
for(int a,int b);//パラメータ
f(x,y);//呼び出し関数、実パラメータに値を割り当てる
6戻り値voidの関数にreturnを書くことができます.メソッド全体を終了するために使用します.
returnは関数に1つの値しか返さない
7カスタム関数に戻り値があり、メソッドで分岐構造に遭遇した場合、各分岐の後ろにreturnが表示される必要があります.
     :         ,     return,         
        //    :               ,     ,             ok
        //   
        if(num1 > num2) {
            return num1;
        }

        //      ,          
        return 0;     

8関数パラメータテーブルは...(3点)は配列を表しますが、変数はパラメータテーブルの最後に配置する必要があります.
...パラメータと通常の配列をパラメータとして区別する
//       int...a             a      
//        ,        
//  :           ...    ,             
public class Test {

	//  int...     
	static void f(int a,int... b)
	{
		System.out.println(a);
		for(int i:b)//   b          
		{
			System.out.print(i+" ");
		}
		System.out.println();
		
		System.out.println(b.length);//   b          
		System.out.println();
	}
	
	//  int[]    
	static void g(int a,int[] b)
	{
		System.out.println(a);
		for(int i:b)
		{
			System.out.print(i+" ");
		}
		System.out.println();
		
		System.out.println(b.length);
		System.out.println();
	}
	
	public static void main(String[] args) {
		f(0,1,2,3,4,5,6,7,8,9,10);//   int...                ,         (    )
		int[] b=new int[] {0,2,3,4,5,6,7,8,9,10};
		g(10,b);//   int[]     ,          (    ,        )
	}
}

例:
package day3_1;

public class A {
	static void f(char a,int...b)
	{
		for(int i:b)
		{
			System.out.print(i+"  ");
		}
		System.out.println();
		System.out.print(b.length);
	}

    public static void main(String[] args) {
    	f('a',2,3,4,5,6,7);
    }

}

出力:2 3 4 5 6 6
package day3_1;

public class A {
	static void f(char a,String...b)
	{
		for(String i:b)
		{
			System.out.print(i+"  ");
		}
		System.out.println();
		System.out.println(b.length);
		System.out.println(b[0].length());
	}

    public static void main(String[] args) {
    	f('a',"Hello ","World");
    }

}

出力:
Hello   World   2 6  
9 public static void main(String[]args){}
まずプログラムはmain()メソッドを自動的に呼び出しますが、なぜpublicとstaticですか?
publicは誰でも呼び出すことができ、staticはmain()が共有領域にあることを示し、プログラムはまず共有領域でこの方法を探し、見つけたら実行します. 
10メソッドのリロード
メソッドのリロードは、メソッドの修飾子と戻り値とは何の関係もありません.
リロード関数の場合、どの関数が呼び出されるかは、伝達されたパラメータに依存します.
同じクラスにおいて、以下の条件を満たす場合、これらのメソッド間で互いにa.メソッド名が同じb.パラメータが異なる(数が異なる、またはタイプが異なる、または順序が異なる)c.アクセス権修飾子と戻り値タイプは影響しない
class TextDemo04 
{
	public static void main(String[] args) 
	{
		//        ,          ,        
		Check.show("10");
		Check.show("10",10);
	}
}
//   
/*
      ,         ,              
		a.     
		b.    【          】
		c.                 
*/
class Check
{
	public static void show() {
		System.out.println("       show");
	}

	//1.    
	public static void show(int a) {
		System.out.println("int show");
	}

	public static void show(String a) {
		System.out.println("String show");
	}

	public static void show(String a,int b) {
		System.out.println("String  int show");
	}

	//2.     :               
	//        ,      ,        ,         
	/*
	public static String show() {
		System.out.println("String    show");

		return "abc";
	}
	*/

	//3.       
	//          ,      ,        ,         
	/*
	static void show() {
		System.out.println("show");
	}
	*/
}

11再帰アルゴリズム
1つのメソッドのメソッド内でその関数自体を呼び出し、関数の再帰と呼ぶ
メソッドの再帰には、あるセグメントのコードを繰り返し実行する暗黙的なループが含まれていますが、この繰り返しはループ文を使用して制御する必要はありません.
class  DiGuiUsageDemo01
{
	public static void main(String[] args) 
	{
		/*
		      
		1,2,3,4,5,6, 7, 8, 9,10,11,.....
		1,1,2,3,5,8,13,21,34,55,89....

		  :
		1.                  ,  1
		2. n       =  n - 1       +  n - 2      

		fun(1)  = 1
		fun(2) = 1
		fun(3) = fun(2) + fun(1) = 1  + 1
		fun(4) = fun(3) + fun(2) = fun(2) + fun(1) +fun(2)
		fun(5) = fun(4) + fun(3) = fun(3) + fun(2) + fun(2) + fun(1) = fun(2) + fun(1) + fun(2) + fun(2) + fun(1)
		....
		fun(n) = fun(n - 1) + fun(n -2)
		*/

		int result1  = fun(10);
		System.out.println(result1);
	}
	//  :   ,              
	public static int fun(int n) {
		if(n == 1 || n == 2) 
			return 1;
     
        else 
            return  fun(n - 1)+fun(n -2);
		}
	}
}

 Thinking in JAVA:
import java.util.*;//Date  java.util  

public class A {

	public static void main(String[] args)
	{
		System.out.println(new Date());//    Date    ,           
	}
}

出力:Sun Jul 22 10:33:58 CST 2018
2.Math.round()/四捨五入
3 Characterクラスのstatic isLowerCase(charまたはint)メソッドは、小文字かどうかを判断するために使用されます.例:

	public static void main(String[] args)
	{
		for(int i=0;i<=128;i++)
		{
			if(Character.isLowerCase(i))
			{
				System.out.println((char)i);
			}
			
		}
	}
}

出力:a b cd e f g h i j k l mn o p q r s t u v w x y z
 
4 foreach構文:int変数をカウントする必要がなく、新しいより簡潔なfor構文は配列とコンテナに使用され、foreachは自動的に各項目を生成します.
foreachも強化forになります
例:float配列を巡る
import java.util.*;

public class Test {

	public static void main(String[] args) {
		Random rand=new Random(47);
		float[] f=new float[10];
		for(int i=0;i<=9;i++)
			f[i]=rand.nextFloat();
		for(float x:f)
			System.out.println(x);
	}
}

出力:0.72711575 0.39982635 0.5309454 0.0534210.16020656 0.57799757 0.18847865 0.4170137 0.51660204 0.73734957
 
配列を返す方法は、foreachを使用することができます.たとえば、Stringクラスには、char配列を返す方法toCharArray()があります.そのため、文字列内のすべての文字を簡単に反復することができます.
public class Test {

	public static void main(String[] args) {
		for(char c:"An African Snallow".toCharArray())
		{
			System.out.print(c);
		}
		System.out.println();
	}
}

出力:An African Snallow
 
break,continue
break文
機能:
ある循環体から飛び出す
書く場所:
ループまたは選択構造内に表示する必要があります
    for(int i=0; i<10; i++) {
        if(i>5) {
        break;
    }
        System.out.println(“  Java”+i);
    }

continue文
  • a:作用
  • は、今回のサイクルを早期に終了する、次のサイクル
  • を継続する.
  • b:使用方法
  • は単独では使用できません.continueキーワードをループ文の
  • に配置する必要があります.
  • c:運転規則
  • はいかなる条件を判断する必要はなく、continueに遭遇すれば直接本輪サイクルから飛び出して次のサイクル
  • を行う.
  • d:ケースコード
  • public class ContinueDemo{ 
        public static void main(String[] args){ 
            for(int i = 0 ; i < 10 ; i++)
                { 
                    if(i%2==0){ 
                        continue; 
                     } 
                       System.out.println(i); 
                } 
         }
     }//  0-9              
    
     

  •  
     
    for(式1;式2;式3)
    {
    式4
    }
    実行順序:
    1回目:式1、式2、式4、式3
    式2、式4、式3
    二変体(自分でコードを書くときは正規の方法で書くことに注意してください.ここで変体はただ理解しています:)
    1.実行順序により
    for(式1;式2;)

    式4
    式3
    }
    2.実行順序により
    for(式1;;)
    {
    if(式2){
    式4
    式3
    }
    else 
       break;
    }
    3行に置くことができます
    for(式1;式2;式3,式4);//すなわち、式4の論理が比較的少ない場合に式3に配置し、カンマで区切られていることに注意して演算することができる.
    4.for(int i=1,j=1,w=2;i<10;i++,j++,w+)/式1は複数の同じタイプの変数であってもよく、式2は1つの判断文のみであり、式3は1つの式であってもよい
    {
    }
    public class A {
    
    	public static void main(String[] args) {
    		for(int i=1;i<=10;i++,System.out.println(i));
    	}
    }
    
      :
    
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

     
    package day3_1;
    
    //  0-9      
    public class A {
    
    	public static void main(String[] args) {
    		for(int i=1;i<=10;i++)
    		{
    			System.out.print(i+" ");
    		}
    		System.out.println("");
    		
    		
    		for(int j=1;j<=10;)
    		{
    			System.out.print(j+" ");
    			j++;
    		}
    		System.out.println("");
    		
    		
    		for(int k=1;;)
    		{
    			if(k<=10) {
    			System.out.print(k+" ");
    			k++;
    			}
    			else
    				break;
    		}
    		System.out.println("");
    		
    		for(int w=1;w<=10;w++,System.out.print(w+" "));
    		System.out.println("");
    		
    		for(int r=1;r<=10;System.out.print(r+" "),r++);
    		System.out.println("");
    	}
    
    }
    

    出力:1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 6 7 8 9 10 2 3 4 4 4 4 4 4 5 6 7 7 8 8 8 9 11 1 2 3 4 5 8 10
     
    文字列のアルファベット、数値、下線、スペース、その他の文字の個数をそれぞれ計算する方法を書きます.
    /*1.      ,             ,  ,   ,          */
    /*		Character.isLetter();//     
    		Character.isWhitespace();//    
    		Character.isDigit();//    */
    public class A {
    
    	public static void main(String[] args) {
    		String s="abcd AB CD EF ..!@#$%^&*()_+=-1235346457680980{}[]\\\';/.,<>?  ";
    		int digit=0,letter=0,space=0,special=0;
    		
    		for(int i=0;i<=s.length()-1;i++)
    		{
    			char c=s.charAt(i);
    			if(Character.isLetter(c))//     
    					letter++;
    			else if(Character.isDigit(c))//     
    					digit++;
    			else if(Character.isWhitespace(c))
    					space++;
    			else
    				special++;	
    		}
    		System.out.println("    "+letter+" ");
    		System.out.println("    "+digit+" ");
    		System.out.println("    "+space+" ");
    		System.out.println("      "+special+" ");
    
    	}
    
    }
      :
        10 
        16 
        6 
          29 

     
    最大の公倍数と最小の公約数を求めます
    
            ...               ,   :         *          =       ,          :
    
    package day3_1;
    
    import java.util.*;
    
    /4.       m n,             /
    
    public class B {
    
    	public static void main(String[] args) {
    
    		System.out.print("        ");
    
    		Scanner sc=new Scanner(System.in);
    
    		int a=sc.nextInt();
    
    		int b=sc.nextInt();
    
    		int gb,gy;
    
    		if(a>b)//    a
    
    		{
    
    			int tmp =a;
    
    			a=b;
    
    			b=tmp;
    
    		}
    
    		for(int i=a;i>=1;i--)
    
    		{
    
    			if(a%i==0 && b%i==0)
    
    			{
    
    				gy=i;
    
    				gb=a*b/gy;
    
    				System.out.println("      "+gy+"      "+gb);
    
    				break;
    
    			}
    
    		}
    
    		
    
        }
    
    }
    
         :
    
    //      ... = =
    
    package day3_1;
    
    import java.util.*;
    
    /4.       m n,             /
    
    public class B {
    
    	public static void main(String[] args) {
    
    		System.out.print("        ");
    
    		Scanner sc=new Scanner(System.in);
    
    		int a1=sc.nextInt();
    
    		int b1=sc.nextInt();	
    
    		int r=1;
    
    		int a=a1,b=b1;
    
    		if(a