Java学习记录(2)
这阶段学习的内容大部分与C语言的只是重合,只有较小的部分是Java内的新概念。
概念
- 包(package)。
包就像是一个“文件夹”,可以在它里面存放类这些“文件”。而它的作用是使开发人员便于管理众多的类。 - 类属性。
当一个属性被static修饰的时候,就叫做类属性,又叫做静态属性;
当一个属性被声明成类属性,那么所有的对象中的这个属性都共享一个值,任何一个对象使这个类属性发生变化,其他对象也会发生变化。 - 类类型。
类类型即是以类的名字作为修饰声明变量。
为了理解,与基本变量(int、float等)做一下比较。
public class Test {
public static void main(String[] args) {
int a;
float b;//a、b这两个变量是基本类型
Test h = new Test();//h变量为类类型
}
}
- 引用与赋值。
(1)如果一个变量是基本类型,比如int hp = 50;
我们就直接管hp叫变量“=”表示赋值的意思。
(2)如果一个变量是类类型,比如Test h = new Test();
我们就管h叫做引用。“=”不再是赋值的意思,而是表示指向的意思。
比如Test h = new Test();
的意思是——引用h,指向一个Hero对象。 - 继承。
举之前的例子,在LOL中,武器(物品的子类)是物品(类)的一种,也是有名称和价格的。所以在设计类的时候,可以让武器继承物品(类),从而继承名称和价格属性,简化操作。
Java中继承的写法:
public class Weapon extends Item{//子类 extends 父类
}
- 方法的重载。
方法的重载指的是方法名一样的方法,但是它们的参数类型(个数)不一样。
当使用这个方法的时候,根据传入的参数类型(个数)决定使用哪个方法。 - 构造方法。
方法名和类名一样(包括大小写),没有返回类型。
实例化一个对象的时候,必然调用构造方法
XX类的构造方法是:
public XX(){
}
这个无参的构造方法,如果不写,就会默认提供一个。
和普通方法一样,构造方法也可以重载。
- This。
this这个关键字,相当于中文里的“我”,this即代表当前对象。
this关键字作用:
(1)可以通过this关键字访问成员变量和成员方法。
(2)在一个构造方法中,想要调用另一个构造方法,可以使用this()。this()相当于public 类名()。
(3)可以作为方法的返回值。
一些注意点和额外内容
- 调试时需要注意:当前类,一定要有主方法,否则就会调试到 上一次成功运行的程序。
- 数组。
①如果指定了数组的内容,就不能同时设置数组的长度。
数组的几种写法:
1.int a[] = new int[]{100,102,444,836,3236};
2.int b[] = {100,102,444,836,3236};
②
如果数组没有赋值,那么就会使用默认值。对于short,int,long,byte而言,创建数组的默认值是0 对于float,double而言,默认值是0.0 char类型数组的默认值是空格 boolean类型数组的默认值是false
- 三种输出。
//1.输出内容并换行
System.out.println();
//2.输出内容不换行
System.out.print();
//3.类似于c语言的输出 可以用%d %o %e %x 等格式
System.out.printf("%d",a);
//4.程序报错专用输出 (输出字体为红色)
System.err.println();
- 包。
如果一个包中的类调用另一个包中的类的东西,那么就得在这个类的前头加上import 包名.类名;
不同包里的类属性,要加public修饰,才能被访问到。 - 构造方法。
如果提供了一个有参的构造方法,同时又没有显式地提供一个无参的构造方法,那么默认的无参的构造方法就不能使用了。 - 不能将方法体内的局部变量声明为static。
- 布尔值不能与整数类型进行转换。
- switch语句中case语句后的常量表达式的值可以是整数,但不能是浮点数。