JAVA基础

本文介绍了JAVA的基础知识,包括方法的定义与调用、变量的值传递、运算符的使用,以及条件分支语句中的if...else和switch。特别讨论了方法调用的方式、Java中的值传递特点和逻辑运算符的区别。

JAVA基础

方法(Method)

方法(c/c++的函数),java中通常将某些用于实现特定功能的代码片段包含成为一个整体,这个整体就称之为方法,通过方法的调用可以减少重复代码的编写(提高代码的可复用性);java中的方法属于类,语法结构如下:

【修饰符】<返回值类型> 方法名(【参数列表】){

​ //执行体

}

Java中的方法分类:

  • 有参数有返回值
  • 有参数无返回值
  • 无参数有返回值
  • 无参数无返回值

例如

//有参数有返回值方法(计算两个参数之和并返回)
public int add(int a,int b){
    return a + b;
}

//有参数无返回值方法
public void msg(String s){
    System.out.println(s);
}

//无参数有返回值方法
public String getName(){
    return "翠花";
}

方法调用

java中的方法调用通常需要使用实例对象调用,如下:

引用变量.方法()

//创建对象
Demo d = new Demo();
//方法调用
int v = d.max(10, 20);
d.msg(v);

变量传值问题

Java中只存在值传递,不存在引用传递的概念

基本数据类型传递

public class Test {

	public void m(int i){
		i = 20;
	}
	
	public static void main(String[] args) {
		int i = 10;
		Test t = new Test();
		System.out.println("before:"+i);//i=10
		t.m(i);
		System.out.println("after:"+i);//i=10
	}
	
}

以上程序内存分配情况:

[外链图片转存失败(img-cLvuzgFW-1563681070889)(assets/1562500896978.png)]

例子2

引用类型传递

public class Student {

	String name;
	
	public void setName(String name1){
		name = name1;
	}
	
	public String getName(){
		return name;
	}
}

//测试类
public class Test2 {

	public void m(Student s){
		s.setName("狗蛋");
	}
	
	public static void main(String[] args) {
		Student s = new Student();
		s.setName("翠花");
		Test2 t2 = new Test2();
		System.out.println(s.getName()); // name=翠花
		t2.m(s); 
		System.out.println(s.getName()); // name=狗蛋	
	}
}

以上程序内存分配情况

[外链图片转存失败(img-MPFSG8vj-1563681070894)(assets/1562500960450.png)]

运算符

java中的运算符,分为以下常用几类:

  • 算术运算(+ - * / % ++ --)
  • 关系运算(> < == >= <= !=)
  • 逻辑运算(& | ! && || ^)

[外链图片转存失败(img-VYO6aklm-1563681070896)(assets/1562486505885.png)]

&和&&区别?

&:按位与,在进行运算时无论运算符左边的表达式结果是否为true,右侧的表达式依然会执行

&&:短路与,在进行运算时只要运算符左边的表达式结果为false,则右侧的表达式不再执行

任何类型的数据跟字符相加都会转换为字符串

表达式&语句块

表达式

表达式通常表示为运算符和运算数的结合,比如一个基本算数运算,一个赋值运算,对象调用方法,变量的声明都称之为表达式:

  • int i = 10;
  • a + b;
  • stu.getName();

表达式一般表示为一行语句

语句块

语句块一般表示为一系列表达式的集合,通常包裹在一对{}之间;一个类结构中的所有内容属于语句块,一个方法内部的内容也是属于语句块,条件分支,循环语句等都称之为语句块。

流程控制语句

java中程序的执行一般从主方法开始从上往下依次执行,是一种顺序结构;在实际情况中除了顺序执行外,还有一些其他执行方式,比如:

  1. 条件分支语句
  2. 循环语句

条件分支语句

java中的条件分支分为两种类型:

  1. if…else…
  2. switch

####if…else…

语法结构:

结构一:

if(条件表达式){

}

```mermaid
flowchat
st=>start: 开始
cond=>condition: 条件判断
op=>operation: 操作
e=>end: 结束
st->cond
cond(yes)->op->e
cond(no)->op
&```

结构二:

if(条件表达式){

}else{

}

结构三:

if(条件表达式){

}else if(条件表达式){

}else{

}

[外链图片转存失败(img-l5xpjFIY-1563681070899)(assets/1562488397586.png)]

if…else…实例

 * 提供一个分数,根据分数的所在范围,显示成绩等级
 * >=90:A+
 * >=80:A
 * >=70:B
 * >=60:C
 * <60:学渣
 扩展:如果分数大于100或者分数小于0则输出 无效的分数
public class Demo1 {

	public String getLevel(int score){
		String level = "";
		//容错处理
		if(score > 100 || score < 0){
			level = "无效的分数";
		}else if(score >= 90){
			level = "A+";
		}else if(score >= 80){
			level =  "A";
		}else if(score >= 70){
			level =  "B";
		}else if(score >= 60){
			level =  "C";
		}else{
			level =  "学渣";
		}
		return level;
	}
	
	public static void main(String[] args) {
		
		Demo1 d = new Demo1();
		System.out.println(d.getLevel(65));
	}

}
switch语句

switch语句是另一种分支语句,一般用于对某些枚举值(确定的,少量的值)进行分支判断,语法

switch(值){

case 值1:

​ break;

case 值2:

​ break;

}

实例

在平年的情况下,根据提供的月份返回该月份的总天数:

public class Demo2 {

	public int getDayOfMonth(int m){
		int day = 0;
		switch(m){
		case 1: 
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			day = 31; 
			break;
		case 2:
			day = 28;
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			day = 30;
			break;
		}
		return day;
	}
	
	public static void main(String[] args) {
		
		Demo2 d = new Demo2();
		int day = d.getDayOfMonth(100);
		System.out.println(day);
	}

}

switch支持的数据类型包含以下:

  1. 整型:byte short int

  2. 字符型:char

  3. 字符串:String

  4. 枚举类型:enum

    switch语句枚举类型的使用:

    定义枚举类:

    public enum Status {
    
    	NONPAY,
    	PAYED,
    	SENDED,
    	COMLETED
    }
    

    使用枚举:

    public class Demo3 {
    
    	/**
    	 * 订单状态
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		Status s = Status.COMLETED;
    		switch(s){
    		case NONPAY:
    			System.out.println("未支付");
    			break;
    		case PAYED:
    			System.out.println("已支付");
    			break;
    		case SENDED:
    			System.out.println("已发货");
    			break;
    		case COMLETED:
    			System.out.println("已完成");
    			break;
    		}
    		
    	}
    
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值