zoukankan      html  css  js  c++  java
  • java入门的语法学习

    用java语言写了一个求两个数最大公约数的程序:

    import java.io.*;
    import java.util.*;
    import java.math.*;
    
    
    
    public class Main{
    	static int a[] = new int[5];
    	
    	static int gcd(int a, int b){
    		return b==0?a:gcd(b, a%b);
    	}
    	
    	public static void main(String []args){
    		Scanner reader = new Scanner(System.in);
    		int n, m;
    
    		while(reader.hasNext())
    		{
    			n = reader.nextInt();
    			m = reader.nextInt();
    			int dd = gcd(n, m);
    			System.out.println(dd);
    		}
    	}
    }
    

    java可以进行数组的引用,比如 //b=a,b数组和a数组是相同的地址。 但如果我们要复制数组呢,我们可以用Arrays类的调用方法。

    这个是最实用的使用方式:

    import java.util.*;
    
    public class myCode {
    
    	public static void main(String[] args) {
            int a[] = {1, 2, 3, 4, 5, 6};
            int b[], c[], d[];
            b = Arrays.copyOf(a, 10);//复制10个元素过来,不够的默认为0
            System.out.println(Arrays.toString(a));
            
            System.out.println(Arrays.toString(b));
            
            c = Arrays.copyOfRange(a, 3, 5);// 复制下标3 至 5-1
            System.out.println(Arrays.toString(c));
            
            d = Arrays.copyOfRange(a, 3, 9);//复制3至8,不够的默认为0
            System.out.println(Arrays.toString(d));
            
    	}
    }
    
    /*
    输出结果:
       [1, 2, 3, 4, 5, 6]
       [1, 2, 3, 4, 5, 6, 0, 0, 0, 0]
       [4, 5]
       [4, 5, 6, 0, 0, 0]
     */
    

     java中数组的函数排序和函数进行二分查找。

    import java.util.*;
    
    public class myCode {
    
    	public static void main(String[] args) {
            int a[] = {11, 2, 13, 44, 105, 86, 77, 32};
            Arrays.sort(a);//数组函数排序
            System.out.println(Arrays.toString(a));
            
            int key=55;//二分查找55是否存在于a数组
            int index = Arrays.binarySearch(a, key);
            if(index>=0)
            	System.out.println("关键字存在,位置是"+index);
            else
            	System.out.println("index返回值是负数,表示关键字不存在");
    	}
    }
    

     java switch语句中进行枚举类型值得使用:

    import java.util.*;
    
    enum month{
    	January, February, March, April, May, 
        June, July, August, September, 
    	October, November, December
    }
    
    public class myCode {
    
    	public static void main(String[] args) {
            Scanner reader=new Scanner(System.in);
    		month ans=month.January;
    		
            switch(ans){
            case January: System.out.println("1月"); break;
            case February: System.out.println("2月"); break;
            case March: System.out.println("3月"); break;
            case April: System.out.println("4月"); break;
            case May: System.out.println("5月"); break;
            case June: System.out.println("6月"); break;
            default: System.out.println("系统没有匹配到"); break;
            }
    	}
    }
    

    1.类的定义及使用:

    样例代码:

    class Main{
    	String name;
    	int age;
    	String sex;
    	String address;
    	void eat(){
    		System.out.println("我会吃饭 ");
    	}
    	void run(){
    		System.out.println("我会跑步  ");
    	}
    	public static void main(String[] args) {
    		Main p;
    		p = new Main();
    		p.name = "张三";
    		p.age=18;
    		p.sex="女";
    		p.address = "山东淄博";
    		System.out.println(p.name+"说:");
            System.out.println("我叫"+p.name );
            System.out.println("性别"+p.sex);
            System.out.println("我今年"+p.age+"岁");
            System.out.println("我住在"+p.address );
            p.eat();
            p.run();
    	}
    }
    

     也可以这样写:

    package java_1;
    
    
    class person{
    	String name;
    	int age;
    	String sex;
    	String address;
    	void eat(){
    		System.out.println("我会吃饭 ");
    	}
    	void run(){
    		System.out.println("我会跑步  ");
    	}
    }
    public class Main{
    	public static void main(String[] args) {
    		person p;
    		p = new person();
    		p.name = "张三";
    		p.age=18;
    		p.sex="女";
    		p.address = "山东淄博";
    		System.out.println(p.name+"说:");
            System.out.println("我叫"+p.name );
            System.out.println("性别"+p.sex);
            System.out.println("我今年"+p.age+"岁");
            System.out.println("我住在"+p.address );
            p.eat();
            p.run();
    	}
    }
    
    //第四章 类与对象  
    //可变参数:是指在生命方法时,不给出参数列表中从某项直到最后一项的参数的名字和个数
    //但这些参数的类型必须相同
    public void f(int ... x);
    //在这个方法f()的参数列表中,从第一个至最后一个参数都是int类型,
    //但连续出现的int类型参数个数不确定,称x是方法f()的参数列表中可变参数的“参数代表”
    //也可以这样定义:
    public void g(double a, int ... x);
    //参数代表可以通过下标运算来代表参数列表中的具体参数,即x[0],x[1],x[2]...x[m]
    //分别表示x代表的第1~m个参数(很类似一个不确定长度的数组)
    //对于一个参数代表,例如x,x.length等于x所代表的参数的个数
    

     应用:(分到不同的文件中去执行下面的代码)

    package java_1;
    
    public class Computer {
    	public double getResult(double a, int ... x){
    		double result=0D;
    		int sum=0;
    		for(int i=0; i<x.length; i++){
    			sum=sum+x[i];
    		}
    		result = a*sum;
    		return result;
    	}
    }
    
    public class Main{
    	public static void main(String[] args){
    		Computer computer=new Computer();
    		double result = computer.getResult(1.0/3, 10,20,30);
    		System.out.println("10+20+30的平均数:"+result );
    		
    		result = computer.getResult(1.0/6, 5,8,9,6,3,66);
    		System.out.println("这些数的平均数是:"+result );
    	}
    }
    
    //输出结果:
    10+20+30的平均数:20.0
    这些数的平均数是:16.166666666666664
    
    //第四章
    //4.6 stdtic关键词
    //类体的定义包括:成员变量的定义和方法的定义,并且成员变量的定义又分为:实例变量
    //和类变量。用static声明的变量就是累变量。同样的,方法的定义除了构造方法外,还
    //有实例方法和类方法。
    
    /*
     1.实例方法可以调用该类中的实例方法或类方法
     2.类方法只能调用该类的类方法,不能调用该类的实例方法
     */
    //注意:对象共享类变量
    

     下面的代码程序:对static变量的调用 和 static变量的值(分开到不同的文件中!!!)。

    package java_1;
    
    public class lader {
    	double 上底, 高; //实例变量
    	static double bottom; //类变量
    	
    	void set上底(double a){
    		上底 = a;
    	}
    	void set下底(double b){
    		 bottom = b;
    	}
        double get上底(){
        	return 上底;
        }
        double getBottom(){
        	return bottom;
        }
    }
    
    public class Main {
    	public static void main(String[] args) {
    		 lader.bottom = 100;
    		 //lader的字节码被加载到内存,通过类名操作类变量
    		 lader lader1 = new lader();
    		 lader lader2 = new lader();
    		 lader1.set上底(28);
    		 lader2.set上底(66);
    		 System.out.println("lader1的上底和下地:"+lader1.get上底()+"  "+lader1.getBottom() );
    		 System.out.println("lader2的上底和下底:"+lader2.get上底()+"  "+lader2.getBottom() );
    	}
    
    }
    
    //第四章
    //4.8 包
    /*
      包是java语言有效管理类的一个机制。
     不同java源文件中可能出现名字相同的类,想要区分开,就需要使用包名
     使用包名的目的是有效的区分开名字相同的类
     
     package为该源文件声明的类指明包名
     package abc;
     package a.b.c;  //都合法
     
     */
    

    第5章 继承与接口


    面向对象编程 的特点:类的封装  类的继承  类的多态。

    5.1节
     *利用继承可以先编写一个具有共同属性的类,然后根据一般类编写具有特殊属性的类。
     * 新类继承一般类的状态和行为,并根据需要增加新的状态和行为。
     * 由继承得到的类成为 子类,被继承的类称为 父类(超类)
     * 特别注意:java不支持多重继承(只能有一个父类,接口机制会弥补这个缺点)
    格式:
    class 子类名 extends 父类名{
        ......
    }

    extends关键字包含在Object的类中,Object是java.lang包中的类。

  • 相关阅读:
    VRChat之blender教程
    29(30).socket网络基础
    26(27).反射及面向对象进阶
    25.python之面向对象
    24.configparser&hashlib
    23.logging
    22.re(正则表达式)
    22.XML
    java日志系统 @Slf4j注解的正确使用
    java四种元注解:@Retention @Target @Document @Inherited)认知
  • 原文地址:https://www.cnblogs.com/yspworld/p/4334935.html
Copyright © 2011-2022 走看看