Basic Java Skills
1. Java的工作方式:
源代码文件(.java)→编译器产出字节码(.class)→JVM读取与执行字节码
cmd运行java文件:
输入:
cd/d 文件所在文件夹
javac 名称.java
java 名称
得到结果
部分java指令:
java文件组成:class
.java | class(一到多个) | method1 | variable | ||
main method(每个应用必须有且只有一个main) | variables | byte | >=0 | ||
short | >=0 | ||||
int | >=0 | ||||
long | >=0L | ||||
float | 0.0f | ||||
double | 0.0d | ||||
boolean | true or false | ||||
char | '\u0000' | ||||
statements | 运算 | ++ --;+ - * / %;&& || !;? : ;> < | |||
逻辑 | while;do while;for | ||||
if else; switch case | |||||
continue;break |
2. Java文件编写
1.访问权限关键字
2.class:
public/*公开给其他class存取*/ class/*类声明*/ Cat/*名称*/{
}
- 在一个.java文件中,有且只有一个public修饰的class,用public修饰的class的类名和文件名必须一致
- 如果不含main的class只想被main调用,可以去掉public并写在一个.java文件
3.method:
public/*公开给其他类存取*/ static/*静态类*/ void/*returnType*/ main/*methodName*/ (String[] args(*/parameters*/)){
}
- parameter=形参 (formal parameter),用来定义函数
- argument=实参 (actual parameter),函数真正使用的
4.三种注释方法
○ // single line comment
○ /* many line comments,
end with */
○ /**
* comments here go
* in a javadoc file
*/
5.变量声明
- 变量在使用前要先进行变量声明
- 变量声明可以在任意地方(method中,传参中,返回类型中)
- 声明方式:变量类型+名称,如 int Cat=5;
- 在class中声明变量,不写“=”也会自动给null,如下图的 *;而在method中则不会自动赋值null,如下图,去掉 ** 的//,就将编译错误
- 类型与赋值必须匹配
- 名称:
- 变量、method以小写字母开始,按照驼峰式;class以大写字母开始
- 名称不能与任何关键字重合
6.statement
1.postincrement: i++ postdecrement: i--
先将i+1的值放到一旁,i的值暂时不变,在当前运算结束后自增1
2.preincrement: ++i predecrement: --i
直接给i值加1
3.类型转换:
(要转成的类型)要转的值;
只能从大转小,不能从小转大
4.条件语句
判断对象?结果1:结果2;
a=(test? b:c)// if test is true, a=b; else a=c
5.outer & inner
都是标签,后面紧跟的冒号,相当于{},可以给一部分代码打上标签
如果想跳出它所代表的循环,那么就break outer;
如果想结束它所代表的此次循环,那么就continue outer;
6.输出函数
System.out.println(内容1+内容2+内容3);
Object-Oriented programming
根据对象的变化,利用class的继承与修改,轻松实现新的要求的增删而不用破坏以前的代码
1.Object
本质:一个对象,拥有一个class做设计图纸,JVM根据class创建对象
class | attribute | instance variable 实例变量 |
class variable 类变量 | ||
method | constructor 构造器 | |
accesor/getter 获取器 | ||
mutator/setter 设置器 | ||
应用method |
实例变量
1.java会自动定义class中的变量(实例变量)为默认值,但对于method中的变量就没有此待遇
2.一般class会封装起来,所以将实例变量设置为private
constructor
1.格式:public class名 (参数){}
构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名)
构造器可以有0个、1个或1个以上的参数
2.每个类可以有一个以上的构造器,同名但参数和语句不同
3.构造器没有返回值
4.构造器总是伴随着new操作一起调用
5.不添加任何构造器会默认有空的构造器
accesor 和 mutator:
1.一种访问private东西的方法,可以不用将东西设为public,而在class增加这两种public函数
2.获取器Accessor/getter:返回一个类的变量或其值
3.设置器Mutator/setter:设置类变量指针或其值
4. 构造器可以代替这两者的功能,只需要传入参数即可
2.Testclass
一般会对于图纸class设计一个测试class以测试功能
步骤1:创建一个指向该object的遥控器
创建一个rabbit类型的容器b
创建一个rabbit对象
将控制rabbit对象的遥控器给容器b
步骤2:调用该object的method
1.constructor调用:
已知:
testclass:
2.getter和setter调用
已知:
testclass:
3.两者结合
3.class的提取与继承
abstraction:从所有已有class中提取相同的method
inheritance:从一个父class中衍生出的子class都可以继承及重新定义父class中的method