变量是什么:就是可以变化的量!
Java是一种强类型语言,每个变量都必须声明其类型
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName [=value] [{, varName[=value]}] //数据类型 变量名 = 值; //可以使用逗号隔开来声明多个同类型变量,但不推荐注意事项
每个变量都有类型,类型可以是基本类型,也可以是引用类型(String)
变量名必须是合法的标识符
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
public class HelloWorld { public static void main(String[] args) { //int a, b, c; //int a=1, b=2, c=3; //影响程序的可读性,不提倡 int a = 1; String name = "Harryking"; char x = 'X'; double pi = 3.14; } }变量的作用域
类变量
实例变量
局部变量
public class HelloWorld { static int allClick = 0; //类变量 String str = "hello world"; //实例变量 public void method() { int i = 0; //局部变量 } }
public class HelloWorld { //属性:变量 // 类变量 static static double salary = 2500; //实例变量:从属于对象 //如果不自行初始化,则是这个类型的默认值 //(0 0.0 u0000) //布尔值:默认是false //除了基本类型,其余默认值都是null String name; int age; //main方法 public static void main(String[] args) { //局部变量:必须声明和初始化值 int i = 10; System.out.println(i); //作用域仅在main方法的大括号中 //实例变量的使用 //变量类型 变量名字 = new HelloWorld(); HelloWorld helloWorld = new HelloWorld(); System.out.println(helloWorld.age); System.out.println(helloWorld.name); //类变量 static System.out.println(salary); } //其他方法 public void add() { } }变量的命名规范
使代码便于阅读
所有变量、方法、类名:见名知意
类成员变量:首字母小写和驼峰原则
monthSalary除了第一个单词外,后面单词的首字母大写
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线:MAX_VALUE
类名:首字母大写和驼峰原则:GoodMan
方法名:首字母小写和驼峰原则:runRun()
常量常量Constant:初始化initialize后不能再改变值!不会变动的值
所谓常量可以理解成一种特殊的变量, 它的值被设定后,在程序运行的过程中不允许被改变
final 常量名 = 值 //eg final double PI = 3.14;
常量名一般使用大写字符
public class HelloWorld { //static、final皆为修饰符,不存在先后顺序、 //即二者可调换顺序 //除此之外还有public,private等 static final double PI = 3.14; public static void main(String[] args) { System.out.println(PI); } }基本运算符 赋值运算符
以及拓展的部分皆是同C语言
算术运算符package operator; public class Demo01 { public static void main(String[] args) { //二元运算符 //Ctrl + D:复制当前行到下一行 int a = 10; int b = 20; System.out.println(a + b); //0 System.out.println(a - b); //-10 System.out.println(a * b); //200 System.out.println(a / b); //0 System.out.println(a / (double)b); //0.5 long c = 123123123123L; int d = 123; short e = 10; byte f = 8; //若基本运算中存在double则运算结果为double //除此之外若存在Long其结果为Long //此外的情况结果都为Int System.out.println(a+b+c+d); // Long System.out.println(b+c+d); // Int System.out.println(c+d); // Int //取余,模运算 int g = 21; System.out.println(g % a); // 21 / 10 = 2 ... 1 } }
一元运算符:++自增--自减,用法同C
关系运算符package operator; public class Demo01 { public static void main(String[] args) { //关系运算符返回的结果:true false 布尔值 //if中常用 int a = 10; int b = 20; System.out.println(a > b); //false System.out.println(a < b); //true System.out.println(a == b); //false System.out.println(a != b); //true } }
package operator; public class Demo01 { public static void main(String[] args) { //与(and) 或(or) 非(取反) boolean a = true; boolean b = false; System.out.println("a && b:"+(b && a)); //逻辑与运算:两个变量都为true,结果才为true System.out.println("a || b:"+(b || a)); //逻辑或运算:两个变量有一个为true //则结果为true System.out.println("!(a && b):"+!(b && a)); //如果是true,则变为false //如果是false,则变为true //记住以上的输出形式,以+连接输出的两个部分 //短路运算 int c = 5; boolean d = c < 4 && c ++ < 4; System.out.println(d); System.out.println(c); } }工具类 幂运算
N^M pow函数
package operator; import static java.lang.Math.pow; public class Demo01 { public static void main(String[] args) { double pow = pow(2, 3); System.out.println(pow); } }
很多运算我们会使用一些工具类来 *** 作
位运算特点 -- 效率极高!!!
package operator; public class Demo01 { public static void main(String[] args) { System.out.println(2 << 3); } }字符串连接符
+ 在 sout中输出是,若是遇见String则连接字符串输出
package operator; public class Demo01 { public static void main(String[] args) { int a = 10; int b = 20; //sout中当String类型出现时+为字符串连接符 //其余时候依旧为算术运算符 System.out.println(""+ a + b);//1020 System.out.println(a + b +"");//30 } }条件运算符
? :即使三元运算符
用法同C语言
优先级建议都是用括号,提高可读性
包机制为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
包的本质 -- 文件夹
包语句的语法格式
//定义包 package pkg1[.pkg2[.pkg3[...]]];
一般利用公司域名倒置作为包名
域名:www.Harryking.com -> 包名:com.Harryking.www
为了能使用某一个包的成员,我们需要在Java程序中明确导入改包,使用import语句导入即可
import package1[.package2[...]].(classname|*)
注意包名尽量不重复可能在导入时发生冲突
创建包时可以一次性创造内涵关系,其中以.分隔
通配符
import com.Harryking.* //导入这个包下所有的类!Java Doc
将我们的注释信息生成一个帮助文档
javadoc命令是用来生成自己的API文档的
JDK帮助文档
参数信息
@author 作者名
@version 版本号
@since 指明需要最早使用的JDK版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况
package com.Harryking.www; //类注释 public class Doc { String name; //方法注释 public String test (String name) throws Exception{ return name; } //通过CMD命令行 javadoc [-encoding UTF-8 -charset UTF-8] Java文件 //IUEA生成JavaDoc文档! 面向百度编程! }
面向百度编程
注记基础部分的一切知识,后面几乎每天都会有
Java流程控制 Scanner对象java.util.Scanner是Java5的新特征
我们可以通过Scanner类来获取用户的输入
//基本语法 Scanner s = new Scanner(System.in);
通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()和hasNextLine()判断是否还有输入的数据
next()方法
一定要读取到有效字符后才可以结束输入
对输入有效字符之前遇到的空白,next()方法会自动将其去掉
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
next()不能得到带有空格的字符串
//next()方式 package com.Harryking.base; import java.util.Scanner; public class Helloworld { public static void main(String[] args) { //创造一个扫描器对象,用于接受键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用next的方式接收:"); //判断用户有没有输入字符串 if (scanner.hasNext()){ //使用next的方式接收 String str = scanner.next(); //程序会等待用户输入完毕 System.out.println("输出内容为:"+str); //凡是属于IO流(输入输出)的类不关闭会一直占用资源,要养成好习惯用完就关掉 scanner.close(); } } }nextLine()方法
以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
可以获得空白
//nextLine()方法 package com.Harryking.base; import java.util.Scanner; public class Helloworld { public static void main(String[] args) { //从键盘接受数据 Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine方式接收:"); //判断是否还有输入 if(scanner.hasNextLine()) { String str = scanner.nextLine(); System.out.println("输出的内容为:"+str); } scanner.close(); } }
注:if的判断语句可无
进阶使用package com.Harryking.base; import java.util.Scanner; public class Helloworld { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //从键盘接收数据 int i = 0; float f = 0.0F; System.out.println("请输入整数:"); //如果...那么 if (scanner.hasNextInt()) { i = scanner.nextInt(); System.out.println("整数数据:"+ i); } else { System.out.println("输入的不是整数!"); } System.out.println("请输入小数:"); if (scanner.hasNextFloat()) { f = scanner.nextFloat(); System.out.println("小数数据:"+ f); } else { System.out.println("输入的不是小数!"); } scanner.close(); } }
问题:我们可以输入多个数字,并求其总和与平均值,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
package com.Harryking.base; import java.util.Scanner; public class Helloworld { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //和 double sum = 0; //计算输入了多少个数字 int m = 0; //通过循环判断是否还有输入,并对里面对每一次进行求和和统计 while (scanner.hasNextDouble()) { double x = scanner.nextDouble(); m ++; sum += x; System.out.println("你输入了第"+ m + "个数据,然后当前结果sum = " + sum); } System.out.println(m + "个数的和为" + sum); System.out.println(m + "个数的平均值为" + (sum / m)); scanner.close(); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)