用IDEA学习java第二天
变量
变量的定义
变量就是一个可以变化的量
java是一种强类型语言,每一个变量都必须声明自己的类型
Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型、作用域等。
数据类型 变量名=值
int a=5;
注意事项
每个变量都有类型,类型可以是基本类型也可以是引用类型。
变量名必须是合法的标识符。
变量声明是一个完整的语句,因此每一个变量声明都必须以分号结尾。
变量作用域
类变量
实例变量
局部变量
public class Demo04 {
//静态变量从属于类,类变量
static int money=3000;
//实例变量,从属于对象,需要通过类来new一个新的对象来调用
//布尔值默认是false
//除了基本类型,其他默认值都是null
String name;
int age;
public static void main(String[] args) {
//局部变量 必须声明和初始化值
int i=1;
System.out.println(i);
//变量类型 变量名字=new Demo04();
Demo04 demo04=new Demo04();
System.out.println(demo04.name);
System.out.println(demo04.age);
//静态变量,类变量
System.out.println(money);
}
public void add(){
}
}
常量
常量的定义
初始化之后不会再改变的值,不会变动的值。
所谓常量可以被理解成一种特殊的变量,他的值被设定以后,在程序运行过程中不允许被改变。
final 数据类型 常量名=值
final double PI=3.14;
注意
常量的变量名要使用大写字母
变量的命名规范
所有变量、方法、类名:见名知意
类成员变量:首字母小写和驼峰原则:mothSalary ;除了第一个单词外,后面单词的首字母都大写:lastName
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线:MAX_VALUE
类名:首字母大写和驼峰原则Man,GoodMan
方法名:首字母小写和驼峰原则:run(),runRun()
运算符
java语言支持如下运算符
算术运算符:+,-,*,/,%,++,--
赋值运算符:=
关系运算符:>,=,<=,==,!= instanceof
逻辑运算符:&&,||,!
自减自增运算符以及初始Math
package operator;
public class Demo04{
public static void mian(String[] args){
int a=3;
int b=a++; //执行这行代码后,先给b赋值,再自增
//a=a+1
System.out.println(a);
//a=a+1
c=++a; //执行这行代码之前,先自增,再给C赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算
Math.pow(2,3); //二的三次方
}
}
逻辑运算符
&&,||,!
package com.zjl.operator;
public class Demo05{
public static void main(String[] args){
//&&(且) ||(或) !(非)
boolean A=true;
boolean B=false;
System.out.println("A&&B:"+(A&&B));//逻辑与运算:两个变量同时为真才为真
System.out.println("A||B:"+(A||B));//逻辑或运算:两个变量中有一个为真则为真,两个变量同时为假才为假
System.out.println("!(A&&B):"+!(A&&B));//如果是假则为真,如果为真则为假
//短路运算
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
}
位运算符
&,|,^,~,>>,<>>(了解即可)
条件运算符
?:
package com.zjl.operator;
public class Demo06{
public static void main(String[] args){
int a=10;
int b=20;
a+=b;
//a-=b
System.out.println(a);
//由于前面有字符串连接符,所以将后面的变量运算按照字符串结合
System.out.println(""+a+b);//输出结果为1020
System.out.println(a+b+"");//输出结果为30
}
}
package com.zjl.operator;
//三元运算符
public class Demo07{
//x?y:z
//如果x==true,则结果为y,否则结果为z
public static void main(String[] args){
int score=80;
String type=score>=60?"考试及格":"考试不及格";
System.out.println(type);
}
}
优先级
package com.zjl.operator;
public class Demo08 {
public static void main(String[] args) {
int a=5;
int b=8;
int c=70;
int d=2;
System.out.println((a+d)*b+c);
}
}
Java Doc
javadoc命令是用来生成自己API文档的
参数信息
@author 作者名
@version 版本号
@since 指明需要最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况
Scanner对象
我们可以通过Scanner类来获取用户的输入
基本语法
Scanner s =new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
package com.zjl.base.scanner;
import java.util.Scanner;
public class Demo01{
public static void main(String[] args){
Scanner s=new Scanner(System.in);
System.out.println("使用next的方式接收");
//判断用户是否输入字符串
if(s.hasNext()){
String str=s.next();
System.out.println("输出的内容为:"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源,所以要养成关闭流的好习惯
s.close();
}
}
package com.zjl.base.scanner;
import java.util.Scanner;
public class Demo02{
public static void main(String[] args){
//接收用户输入
Scanner s=new Scanner(System.in);
System.out.println("使用nextLine的方式接收");
//判断用户是否输入
if(s.hasNextLine()){
String str=s.nextLine();
System.out.println("输出的内容为:"+str);
}
s.close();
}
}
next()和nextLine()的区别
next():
一定要读到有效字符后才可以结束输入。
对输入有效字符之前遇到的空白,next()方法会自动将其去掉
只有输入有效字符后才能将其后面输入的空白作为分隔符或结束符。
next()不能得到带有空格的字符串。
nextLine()
以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前所有字符。
可以获得空白。
Scanner进阶使用
package com.zjl.base.scanner;
import java.util.Scanner;
public class Demo03{
public static void main(String[] args){
//接受用户输入
Scanner s=new Scanner(System.in);
int i=0;
float f=0.0f;
System.out.println("请输入整数:");
if(s.hasNextInt()){
i=s.nextInt();
System.out.println("你输入的是整数"+i);
System.out.println("请输入小数");
}else{
System.out.println("你输入的不是整数");
}
if(s.hasNextFloat()){
f=s.nextFloat();
System.out.println("你输入的是小数"+f);
}else{
System.out.println("你输入的不是小数");
}
s.close();
}
}
Scanner小练习
问题:我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果。
package com.zjl.base.scanner;
import java.util.Scanner;
/*我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果*/
public class Demo04 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int m=0;
double sum=0;
double a=0;
while (s.hasNextDouble()){
a=s.nextDouble();
m++;
sum=sum+a;
}
System.out.println("sum="+sum);
System.out.println("avg="+sum/m);
}
}