一、类型转换
1.自动类型转换
类型兼容 (大类型盒子 = 小类型值)
注意:大类型参与运算符,尽可能提前 ,大数类型置前
2.强制类型转换
小类型盒子 =(小类型)大值;
除boolean类型之外,在java中boolean类型为1位,没有C语言中真即1
注意:类型转换的作用范围
二、方法
1.理解
解决某个问题的 有名称的 代码块 。 函数。。。。
具备某个功能
方法名: 可以多次使用 调用
多行代码
2.参数
编写方法,方便外界放入数据的,功能方法内使用 。
编写方法使用: 需要形参(就是变量)
调用方法使用: 需要实参(就是数据)
3.返回
编写方法,根据需要 可能需要 返回值return
4.编写方式格式
public static 返回类型|void 方法名(形参列表){ 代码块。。。。。 }方法编写时与位置无关。调用时确定顺序。。。。 方法不能嵌套。
/** 写print方法 */ public class HelloWorld{ public static void main(String [] args){ print();//方法调用 } public static void print(){ //打印HelloWorld System.out.println("HelloWorld"); } }
5.方法调用
原路返回,从哪里回哪里
6.方法签名
保证此方法一个类中的
唯一性 :
方法名+形参组成(类型 个数 顺序) ,与 形参名 返回类型 方法体无关/** 方法签名如下: */ main(String[]) add(int,int,int) abs(int) print(double)
7.方法重载
两同三不同: 一个类中,方法名相同,形参类型 个数 和顺序不同。
方法调用:就近最优原则
/*方法重载*/ System.out.println("abc"); System.out.println(100); add(int a,int b); add(double n,double m);
8.方法递归
方法自己调用自己 : 递归头 递归体 递归结束
/*打印整数*/ public class Num{ /*程序入口*/ public static void main(String [] args){ print(5);//给num传入5 } //方法print public static void print(int num){ //打印数字 System.out.println(num); //方法调用 print(num+1); } }
三、工具方法(二个方法)
1.随机数
目标:获得随机的整数
1)java.lang.Math.random() -->[0,1) 随机的小数
2)java.util.Random nextInt(int bound) -->[0,bound) 随机整数
/* 产生随机整数[0,max] */ public class Tool01{ //程序入口 public static void main(String [] args){ int num=getNum(5); System.out.println(num); }) pubic static int getNum(int max){ //工具方法,创建对象 java.util.Random random=new java.util.Random(); int num=random.nextInt(max+1); return num; } }/** 案例:原本是[0,100] 需求是要[5,100] 拆开变成[0,95] +5==[5,100] 关系是 min=5 max=100 [0,max-min]+min */ public class Tool02{ //程序入口点 public static void main(){ int num=getNum(3,5); System.out.pritnln(num); //随机小写字母 char letter=(char)getNum('a','z'); System.out.println(letter); } /** 随机整数【0,max】 */ pubic static int getNum(int max,int min){ //工具方法,创建对象 java.util.Random random=new java.util.Random(); int num=random.nextInt(max-min+1)+min; return num; } }
2.键盘输入
目标:获取 整数 小数 字符串
java.util.Scanner
整数:nextInt 小数:nextDouble 字符串:next()
/** 获取键盘输入 整数 小数 字符串 */ public class Tool03{ //入口点 public static void main(String [] args){ //调用方法键盘输入整数 int num =getIntFromConsole("请输入你喜欢的数字:"); System.out.println(num); //调用方法键盘输入小数 double money=getDoubleFromConsole("请输入你还有多少钱:"); System.out.println(money); //调用方法键盘输入字符串 String str=getStrFromConsole("请输入你喜欢做什么:"); System.out.println(str); } /** 键盘输入整数 */ public static int getIntFromConsole(String tips){ //工具方法,创建对象 java.util.Scanner scan=new java.util.Scanner(System.in); System.out.println(tips); int num=scan.nextInt(); return num; } /** 键盘输入小数 */ public static double getDoubleFromConsole(String tips){ //工具方法,创建对象 java.util.Scanner scan=new java.util.Scanner(System.in); System.out.println(tips); double num=scan.nextDouble(); return num; } /** 键盘输入字符串 */ public static String getStrFromConsole(String tips){ //工具方法,创建对象 java.util.Scanner scan=new java.util.Scanner(System.in); System.out.println(tips); String str=scan.next(); return str; } }
3.字符串
string 为字符串,存在大量的已经编写的方法
1) equals() 比较内容==比较地址值
equalsIgnoreCase(String anotherString) 比较内容可以忽略大小写
2)length() 长度
3)trim() 去除二边的空格
4)replaceAll() 替换
5)indexOf() 查找子串出现的位置
6)substring() 获取子字符串
/** 字符串方法 */ public class Tool04{ //入口点 public static void main(String [] args){ //优化的写法 String msg1="hello world"; String msg2="hello world"; String msg3="hello WOrld"; //1.比较内容equals() boolean flag=msg1.equals(msg3); System.out.println(flag);//false flag=msg1.equalsIgnoreCase(msg3); System.out.println(flag);//true //2.长度length() int len=msg1.length(); System.out.pritnln(len);//11 //3.去除二头空格trim() msg1=" very good "; String anotherMsg=msg1.trim(); System.out.println(anotherMsg);//very good //4.替换 replaceAll msg1=" very good "; //空格换成* anotherMsg=msg1.replaceAll(" ","*"); System.out.println(anotherMsg); //5.找位置 如果没有 返回-1 indexOf() msg1="abc123456an"; int idx=msg1.indexOf("123"); System.out.println(idx); idx=msg1.indexOf("a",2) System.out.pritln(idx); //6.获取子串 substring() String sub=msg1.substring(0,3);//[0,3) system.out.println(sub); sub=msg1.substring(2);//[0,length()) System.out.println(sub); } }
四、模拟用户登录
1.案例
模拟用户登录
1)用户输入
2)判断:登录 用户名:xiaoxiao 密码:123456
3)输出提示信息
/** 用户登录 */ public class Login{ //入口点 public static void main(String [] args){ //接受用户输入 String uname=getStrFromConsole("请输入用户名:"); String upwd=getStrFromConsole("请输入密码:"); //登录 boolean isSuccess=login(uname,upwd); //输出提示信息 String result=isSuccess?"欢迎回来":"账号或密码错误,请确定再重新输入"; System.out.println(result); } /** 键盘输入字符串 */ public static String getStrFromConsole(String tips){ //工具方法,创建对象 java.util.Scanner scan=new java.util.Scanner(System.in); System.out.print(tips); String msg=scan.next(); return msg; } /** 登录 */ public static boolean login(String uname,String upwd){ boolean flag=uname.equals("xiaoxiao") && upwd.equals("123456"); return flag; } }