芝士Java入门
这几天比较摆烂忙,入门时间久了点~
Hello world
public class hello {
public static void main(String[] args) {
System.out.print("Hello,world!");
}
}
文件名要和类名一致:hello.java
public class hello {
public static void main(String[] args) {
}
}
doc窗口命令 编译
javac 文件名
运行
java 类名
注释
// 是单行注释
/* */ 是多行注释
/** */ 是文档注释
数据类型(强类型语言,要求严格!)
一.基本类型
- 整数类型: byte short int(常用) long
- 整数进制:十进制: 10 二进制0b开头: sum=0b10 八进制0开头: sum=010 十六进制0x开头: sum=0x10
- 浮点数类型: float double(常用) (重点!默认是double类型,float类型要在数字后加F/f。例:float sum=5.12F;)
- 最好避免浮点数之间相互比较,会出现精度误差,可用BigDecimal进行比较。
- 字符类型: char (占两字节)
- Java可以将汉字赋给字符 char c=‘我’;C语言不可以将汉字赋给字符。
- boolean类型:值只有true和false
二.引用类型
变量类型
public class Demo03 {
//常量:初始化后不可改变,final static等都是修饰符
static final double PI=3.14;
//类变量 static 从属于类
static double salary = 2500;
//属性
//实例变量:从属于对象,如果不初始化,则为默认值0 0.0 false
//除了基本类型,其余的默认值为null
String name;
int age;
//main 方法
public static void main(String[] args) {
//局部变量:使用前必须声明和初始化值
//int a,b,c;
char x = 'X';
double pi = 3.14;
Demo03 d3 = new Demo03();
System.out.println(d3.age);//输出0
System.out.println(d3.name);//null
//类变量 static
System.out.println(salary);
}
}
修饰符不分先后顺序 static final double PI=3.14; 也可 final static double PI=3.14;
运算符
重点:在+操作中出现字符串时,此时是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串,顺序为从左到右
例如:
System.out.println(0 + 1 + “abc” + 1 + 0)
结果:1abc10
其它运算符与C语言基本一致。
包机制
必须在方法里的第一行,通常利⽤公司的域名倒置作为包名︓www.baidu.com ->com.baidu.www
package pkg1.pkg2.pkg3…;
如果要调用某一个包的成员,需要用import:
import pkg1.pkg2.pkg3…;
如果要调用pkg2下的所有成员
import pkg1.pkg2.*;
交互
不同于C和C++,Java则需要new Scanner(System.in);以及引入一个包import java.util.Scanner;
(引入所有的util包可以用import java.util.*;)
Scanner sc=new Scanner(System.in);
最后需要关闭
sc.close();
hasNext() hasNextLine() 判断是否还有输入的数据(只进行判断,不进行接收)
next() (不可获取有空格的字符串) nextLine() 来获取新的字符串
还有 nextInt() nextFloat() 等方法
package debug;
import java.util.*;
public class debug2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=0;
double m=0.0;
if(sc.hasNextInt()){
n=sc.nextInt();
System.out.println(n);
}
else System.out.println("输入错误1");
if(sc.hasNextFloat()){
m=sc.nextFloat();
System.out.println(m);
}
else System.out.println("输入错误2");
sc.close();
}
}
- 输入 5 10.0 。 结果 5 10.0
- 输入10.0 结果 输入错误1 10.0
命名规范
驼峰原则:
- 小驼峰式命名法(lower camel case):除第一个单词外,后面每个单词的首字母大写。例如:hasNextLine(),hasNextFloat();
- 大驼峰式命名法(upper camel case):每个单词的首字母都大写。例如:
MyClass
,CalculateArea()
,PersonInfo
.
方法
(类似于C语言的函数)
修饰符 返回类型值 方法名(参数类型 参数名){
......
方法体
......
return 返回值;
}
修饰符可以是多个可选的,定义了该方法的访问类型(记住!!!Java是值传递!!!)。
- 方法的重载!
public class test2 {
public static void main(String[] args) {
double ans=max(10.0,20.0);
System.out.println(ans);
}
public static double max(double x,double y){
if(x>y) return x;
return y;
}
public static int max(int a,int b){
if(a>b) return a;
return b;
}
}
可以有多个重名函数,参数列表一定不相同,返回类型可以相同也可以不相同。(爽了)
-
可变参数
在方法声明中,在指定参数类型后加一个省略号,必须是最后一个参数,且是唯一的。
public class test4{
public static void main(String[] args) {
double ans=max(5,5,34,1.8,64.4,79);
System.out.println(ans);
}
public static double max(int n,double... d){
if(n==0){
System.out.println("没有参数");
return 0;
}
double max=d[0];
for(int i=0;i<n;i++)
if(max<d[i]) max=d[i];
return max;
}
}
数组(引用类型)
数组的声明和创建(不建议其他方法):
type[] name=new type[size]; 如:int[] arr=new int[10];
或者 :double[] a={5,34,1.8,64.4,79};
使用与C语言基本无异
初入就到此结束啦~!