方法入参和返回值

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
原文地址:https://www.cnblogs.com/zrh-960906/p/14056771.html