Java基本语法
1.注释
常用的有两种:
(1)单行注释://
(2)多行注释:/*
(再按enter键就可以实现每一行自动补全)
一般注释后面或运算符两边会加空格,为了让代码看起来更美观,但是平常作业写代码不怎么写上注释
2.标识符
标识符是对常量,变量,方法和类来命名的。
例如:int yourScore = 90;
yourScore为变量名
public class Main {}
Main为类名,或者是文件名为类名,public为方法名(其他的还有protected,private等)
(1)命名规则:
- 标识符由数字(0~9)、美元符号($)、下划线(_)以及Unicode字符集组合构成;标识符各符号之间没有空格;
- 标识符第一个字符不能为数字;(现在不咋用)
(2)命名规范:
是为了看起来更美观,并不是一定要这样写
- 类名,接口名
public class StudentController{ }
- 变量名,方法名
public String getUserName(){ }
- 常量名
CUR_TERM
(这一部分主要是复制学姐上课讲的内容,现在这一阶段用的不多,我也不是很理解这几个名词的具体区别是啥)3.变量
变量定义现在还不怎么用,主要讲变量声明
变量声明=数据类型 变量名
例如:
int a = 1;
double b = 2.0;
float c = 3.0f或3.0F;
(这是float区别于double的地方)
char d = "A";
boolean e = (a==b);
结果只有True和False两种
String f = "Hello";
还有long,short,byte三种,我还不知道它们具体的用法,平常还没用过4.运算符
(1)算术运算符
- +为加;-为减;*为乘
- /为除,其中:当运算1 / 2时数据类型若为int,结果只表示整数部分0,若为double,会表达小数0.5
- %为取余
- ++i与i++等价于i=i+1,但是两者的优先级不同,++i表示i先加1再输出i,i++表示先输出当前的i值,再输出i+1的值
- --i与i--等价于i=i-1,区别同上
(2)关系运算符
- ==为比较的两个值相等
if (n == 0) {}
区别于=,=一般用于赋值,不表示相等 - !=为两个值不相等
- 大于为>;>= 大于等于;<小于;<=小于等于
(3)逻辑运算符
- && 表示并,需所有条件均成立
- || 表示或,两个条件成立一个即可
- !()表示取非,最终结果与括号内的结果相反
(4)赋值运算符
- =为赋值,注意事项上面讲了
- +=例如:C += A等价于C = C + A
其余常用的-=,*=,/=同类型时,(%)=均与例子相同4.控制语句
(1)条件语句(选择)
if (写明条件) { }else if { }else{ }
注意大括号包括的范围,都用if也可以switch (条件) { case 值1: break; //break表示跳出循环,一定要写 default: break; }
//default表示违约,即上述条件均不满足时的输出
(2)循环语句
- for
例如:for (int i = 1;i <= 6;i ++) { //循环体内代码 }
- while
例如:while (sc.hasNextInt()) { // 循环体内代码 }
//是先判断条件,再执行代码 - do-while
例如:do { // 循环体内代码 } while (条件)
//是先执行代码,后判断条件,不怎么用5.内核对象
(关于类和方法这方面的理解,还不是很明白)
(1)类
例如:
public class Calculator{}
其中Calculator是一个类
Scanner sc = new Scanner(System.in);
其中Scanner为一个类
类的后面是对象,即上面的sc(2)方法
- public,protected,private这类的是关于对象的信息是否可用的方法
- static是静态方法,有类的实例化时用static(也就是new Scanner之类的),不能有super(也就是继承时不用static)和this,其他的不太理解,反正设置空参构造器或者设置获取一个对象的值的时候不会用static,一般用
public double getMemoryA(){ return memoryA; }
其中double是有返回值的意思,平时写的void意思是没有返回值,并且这样写起到一个修饰符的作用,可以将私有的对象的信息供我们使用,这大概也是封装的概念(3)重写与重载
- 重写是继承里会用到的概念
- 重载是参数个数、类型或顺序不同,方法名相同(返回值类型可以不同)
例如:public double add(double a,double b) { return a + b; }
public double add(double a) { return a + memoryA; }
// 这里变量的声明就不再写了
意思是虽然两个都为add,但是括号里的参数个数不同,是可以实现的;或者也可以将其中一个改为int,也就是改变了返回值类型,也是可以成立的,这都是重载(4)先改变变量然后调用
例如:
public void setMemoryA(double memoryA) { this.memoryA = memoryA; }
// 这个本来是在Calculator里定义的私有变量memoryA,this是避免混淆变量
Calculator.setMemoryA(a);
Java大概就是创建一个对象,通过对象去调用另一个类的方法,然后就可以执行方法里的语句,和调用差不多,可能就是对象.方法();6.继承
- 理解:你有个爹(父类),你有很多孩子(子类),你们都是人(有相同之处,是要继承的)
- 类的继承格式:
class 父类{ } class 子类 extends 父类 { }
7.最后
- Math.pow(b,2) 是对b求平方的意思
System.out.println(a + "*" + b + "=" + String.format("%.4d",a*b));
后面是占位符的意思,就是a与b相乘的结果占四位,其他的%f是小数有几位的意思,用法一样(String中S大写)- gcd(int num1,int num2)是求num1与num2最大公约数的意思
- 强制类型转换,比如int可以自己转换为double,并且不会改变精度;但是double要想转换成int就要强制类型转换,会改变精度,只保留整数部分,小数部分直接舍去,写为(int)a
- public之后的内容现在还是只会写
public class Main { public static void main(String[] args) { } }
像培训中展示的其他类型如果自己写还是想不到如何写