zoukankan      html  css  js  c++  java
  • 方法入参和返回值

    1.方法入参和返回

      方法入参

        基础数据类型

        引用数据类型

    修饰符 返回类型 ⽅法名(参数类型 参数名,参数类型 参数名...){
    
     //⽅法体
    
     return
    }

    方法返回类型

    return xxx 具体类型

    如果不⽤返回,则⽅法返回类型上写 void

    修饰符 void ⽅法名(参数类型 参数名,参数类型 参数名...){
    
     //⽅法体
    
    }

    2.基础运算符

    算术运算符:

    加法 +
    减法 -
    乘法 *
    除法 /
    取余 %
    ⾃增1 ++
        a++ 就是 a=a+1
    ⾃减1 --
        a-- 就是 a=a-1
    int a = 5;
    int b = a++;
    int c = ++a;
    int d = a--;
    int e = --a;

    注意:⾃增(++)⾃减(--)运算符是⼀种特殊的算术运算符

          ⾃增(++)⾃减(—)在变量左右有不同的意义

         在变量左边则先⾃增减操作,再进⾏表达式运算

         在变量右边则先进⾏表达式运算,在进⾏⾃增减操作

       ⾃增和⾃减运算符只能⽤于操作变量,不能直接⽤于操作数值或常量

    关系运算符(⽤于数值的⽐较,不能是字符串等其他⾮数值)

    等号 ==
    不等 !=
    ⼤于 >
    ⼤于或等于 >=
    ⼩于 <
    ⼩于或等于 <=

    3.运算符和优先级

      逻辑运算符

        逻辑与 &&

          仅当两个操作数都为真,条件才为真

          有短路作⽤

        逻辑或 ||

          任何两个操作数任何⼀个为真,条件为真

          有短路作⽤

        逻辑⾮ !

          反转操作数,如果条件为true,则逻辑⾮运算符将得到false

    赋值运算符

    赋值 =
    加和赋值 + =
    减和赋值 - =
    乘和赋值 * =
    除和赋值 / =
    int a=5;
    int c=10;
    // c=c+a;
    c +=a;
    //c =c-a;
    c -=a;
    //c =c*a;
    c *=a;
    //c=c/a
    c /=a;

    三⽬运算符

    格式
     条件 ? 成功 : 否则
    
    例⼦
     int age =5;
     age > 18? "成年": "未成年";

    运算符优先级

    和数学运算⼀样,可以加括号控制优先级
    乘除取余 * / %
    加减 + -
    关系运算>, >=, <,<=
    相等 ==、!=
    逻辑与 &&
    逻辑或 ||
    三⽬运算 ? :
    赋值 =

    4.while循环

      循环退出

    break 关键字
    跳出当前层的循环体,执⾏循环体下⾯的语句
    重要:字符串⽐较是否相等,不能⽤ ==,应该是⽤ equals⽅法

      循环跳过

    continue 关键字
    跳过当前循环,执⾏下⼀次循环, (忽略当前循环内容,直接执⾏下⼀次)

      多种循环的实现方式总结

    // while 循环
    while(布尔表达式){
    }
    // do while循环
    do{
    }while(布尔表达式);
    // 普通for 循环
    for(初始化; 布尔表达式; 变量更新){
    }
    // 增强for 循环
    for(声明变量类型: 集合或者数组){
    }
    int i = 1;
        while (i<=5){
            System.out.println(i);
            i++;
        }
    import java.util.*;
    Scanner input = new Scanner(System.in);
            String answer;
            do{
                System.out.println("上机编程");
                System.out.println("合格了吗");
                answer = input.next();
                System.out.println("");
            }while(!"y".equals(answer));
            System.out.println("恭喜通过了测试");

    while 与 do while 循环 的不同点是 do -while循环是先执行一次 在判断  while循环是先判断在执行while循环是如果条件不成立一次都不执行

    int [] integers = {1,2,3,4};
    for (int j=0;j<integers.length;j++){
      int i = integers[j];
        System.out.println(i);
    }
    String[] strings = {"A","B","C","D"};
            Collection stringList = java.util.Arrays.asList(strings);
            for (Iterator itr = stringList.iterator();itr.hasNext();){
                Object str = itr.next();
                System.out.println(str);
            }

    5.if else条件语句

    if语句的使用

    //如果布尔表达式为true,则执⾏花括号⾥⾯的内容,如果语句体只有⼀句,则花括号可以不
    写,但是推荐写
    if(布尔表达式){
     //语句体
    }
    int a = 5;
    if(a>1){
      System.out.println("ok");
    }

    if else 语句的使⽤,如果if条件为false,则else⾥⾯的内容会被执⾏

    int a = 5;
    if(a>11){
      System.out.println("ok");
    }else{
      System.out.println("no");
    }

    if else if else 语句的使⽤,⽤于判断多个条件

    if(布尔表达式1){
     //语句体
    }else if(布尔表达式2){
     //语句体
    }else if(布尔表达式3){
     //语句体
    }else if(布尔表达式4){
     //语句体
    }else{
     //语句体
    }

    注意

      if 语句⾄多有 1 个 else 语句,可以0个else,且else 语句在最后,类似前⾯的都不成 功,最后⼀定执⾏

      if 语句可以有多个 else if 语句,它们必须在 else 语句之前

      如果其中⼀个 else if 语句为 true,其他的 else if 以及 else 语句都将跳过执⾏

    if else 嵌套

      可以在if else⾥⾯嵌套多层if else

    int age = 30;
    if(age > 10){
     if(age > 18){
     if(age>25){
    
     }else{
    
     }
     }else{
    
     }
    }else{
    
    }

    switch条件分支语句

    条件语句 switch case ,根据分⽀执⾏对应的逻辑
    switch(表达式){
     case 表达式常量1:语句1;
     break;
     case 表达式常量2:语句2;
     break;
    
     ...
    
     //可以有任意数量的case语句
     case 表达式常量n:语句n;
     break;
    
     default : //可选
     //语句
    }

    Switch和if语句都是Java的选择语句,这两种都是允许在程序运⾏时控制程序的执⾏过程。

    switch 语句可以拥有多个 case 语句,每个 case 后⾯跟⼀个常量和冒号

    default就是如果没有符合的case 就执⾏它,default并不是必须的。

    当遇到break语句时,switch语句终⽌。程序跳转到switch语句后⾯的语句执⾏

    case语句不必须包含break语句, 没有break语句,程序会执⾏下⼀条case语句,直到出现break语 句为⽌

    jdk7之前 switch的case语句⽀持int,short,byte,char类型的值,jdk7后⽀持String类型

    int value = 1;
    String day;
    switch (value) {
      case 1: day = "周一";
         break;
       case 2: day = "周二";
          break;
       case 3: day = "周三";
          break;
       case 4: day = "周四";
          break;
       case 5: day = "周五";
          break;
       default:day = "Invalid month";
          break;
      }
      System.out.println(day);

    选择问题:如果只是简单的选择语句 if else即可,复杂或者条件超过4个,则⽤switch语句

    6.static静态代码块和静态方法

    static关键字

      static 修饰的⽅法或变量,优先于对象执⾏,所以内存有会现有 static修饰的内容,后有对 象的内容

      可以⽤来修饰类的成员⽅法、类的成员变量,还可以编写static静态代码块

      修饰变量就是类变量,修饰⽅法就是类⽅法

      总结: 类变量或者类⽅法,可以直接通过类名.⽅法名或者变量名进⾏调⽤,不⽤经过对象

    public class Student{
     static int age;
     static String name;
     public static void sleep(){
    
     }
    }

    static变量也称作静态变量

      和⾮静态变量的区别是,静态变量被所有的对象所共享,在内存中只有⼀份,它当且仅当在 类初次加载时会被初始化。⾮静态变量是对象所拥有的,在创建对象的时候被初始化,存在 多个副本,各个对象拥有的副本互不影响。

      static成员变量的初始化顺序按照定义的顺序进⾏初始化

    static⽅法也称作静态⽅法

      不依赖于任何对象就可以进⾏访问,类名.⽅法名

      不能访问类的⾮静态成员变量和⾮静态成员⽅法

    注意事项:

      静态⽅法不能直接访问⾮静态变量

      静态⽅法当中不能使⽤this

      核⼼:⼀个类⾥⾯ static修饰的不能访问⾮static修饰的成员或者⽅法,⽽⾮static修饰的可以 访问static修饰的成员或者⽅法

    //静态变量
    static int age;
    //静态⽅法
    public static int getAge(){
     return 5;
    }

    静态代码块

      加载类的时候,静态代码块会被执⾏⼀次,且只能执⾏⼀次

      静态内容优先于⾮静态内容,所以静态代码⽐构造⽅法先执⾏

      使⽤场景:⽤来⼀次性对静态成员变量进⾏赋值,或者类资源初始化等操作

    public class 类名{
     static {
     //静态代码块
     }
    }
    创建100个学⽣对象,id编号为1~100
    把编号可以⼤于60的归为⼆组,其他的归为⼀组

    学生类

        private int id;
        public int getId(){
            return id;
        }
        public void setId(int id){
            this.id = id;
        }
    AnswerTest类
    package day2;
    import java.util.Arrays;
    public class AnswerTest {
        public static void main(String [] args){
            test1();
        }
        public static void test1(){
            Student[] arr1 = new Student[60];
            int arr1Index = 0;
            Student[] arr2 = new Student[40];
            int arr2Index = 0;
            for(int i=0; i<100; i++){
                int num = i+1;
                Student student = new Student();
                student.setId(num);
                if(num >60){
                    arr2[arr2Index] = student;
                    arr2Index++;
                }else {
                    arr1[arr1Index] = student;
                    arr1Index++;
                }
    
            }
            for(Student s: arr1){
                System.out.println(s.getId());
            }
            System.out.println("==============");
            for(Student s: arr2){
                System.out.println(s.getId());
            }
        }
    
    }
    定义⼀个⽅法,给1~4其中⼀个数字,返回春夏秋冬 字符串,不命中则返回 错误季节
    package day2;
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class AnswerTest {
        public static void main(String [] args){
            test2();
    
        }
        public static void test2(){
            Scanner input = new Scanner(System.in);
            String season;
            System.out.println("请输入数字:");
            season = input.next();
            System.out.println("");
            String content;
            switch (season){
                case "1":content="";
                    break;
                case "2":content="";
                    break;
                case "3":content="";
                    break;
                case "4":content="";
                    break;
                default:{
                    content="错误季节";
                    System.out.println("default 执行");
                }
            }
            System.out.println(content);
        }
    }
    定义⼀个Dog类,⾥⾯含有 age 静态变量初始为 10,有⼀个name成员属性 , 有⼀个changeAge⽅法,使age⾃增1, 创建含5个dog的数组,获取数组⻆标为3的dog对象,调⽤两次changeAge⽅法,最后打印5个dog对象的age分别是多少

    dog类

    package day2;
    
    public class Dog {
        public static int age = 10;
        private String name;
    
        public void setName(String name){
            this.name = name;
        }
    
        public String getName(){
            return name;
        }
    
        public void changeAge(){
            age++;
        }
    
        public int getAge(){
            return age;
        }
    }
    AnswerTest类
    package day2;
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class AnswerTest {
        public static void main(String [] args){
            test3();
        }
        public static void test3(){
            Dog [] dogs = new Dog[5];
            for(int i=0; i<5;i++){
                Dog dog = new Dog();
                dog.setName("旺财"+i);
                dogs[i] = dog;
            }
            Dog dog = dogs[3];
            dog.changeAge();
            dog.changeAge();
            for (Dog d:dogs){
                System.out.println("名称="+d.getName()+",年龄="+d.getAge());
            }
        }
    }
    dayehui
  • 相关阅读:
    如何利用 JConsole观察分析Java程序的运行,进行排错调优
    【解决】网站运行一段时间后就无法访问,重启Tomcat才能恢复
    不允许一个用户使用一个以上用户名与一个服务器或共享
    SVN升级到1.8后 Upgrade working copy
    Windows Server 2012 R2 创建AD域
    JTA 深度历险
    svn merge error must be ancestrally related to,trunk merge branch报错
    OutputStream-InputStream-FileOutputStream-FileInputStream-BufferedOutputStream-BufferedInputStream-四种复制方式-单层文件夹复制
    SVN提交时响应很慢,我是这样解决的。
    docker学习6-docker-compose容器集群编排
  • 原文地址:https://www.cnblogs.com/zrh-960906/p/14056771.html
Copyright © 2011-2022 走看看