变量使用的注意事项
1.变量要先声明再使用;
2.变量声明后,不能存储其他类型的数据;
3.变量的有效范围是从定义开始到截止,且在同一个范围内部不能定义2个同名的变量;
4.变量定义的时候可以没有初始值,但是使用的时候必须赋初始值。
基本数据类型与对应的包装类
基本数据类型 | 包装类 |
---|---|
boolean | Boolean |
byte | Byte |
char | Character |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
Character和String的区别:
1.定义方式上的区别:
String:使用双引号声明的一组字符;
Character:使用单引号声明的单个字符。
2.存储数量的区别:
String:可以存储任意长度的字符串,实际上是一个字符序列;
Character:只能存储一个字符。
3.数据类型:
String:是一种引用数据类型;
Character:是一种基本数据类型。
修饰符
1.访问修饰符
修饰符 | 作用域 | 继承 |
---|---|---|
private | 仅当前类可访问 | 不可继承 |
default | 同包内可访问 | 不可继承 |
protected | 同包内和子类内都可访问 | 可继承,且在子类中可访问 |
public | 所有类均可访问,无访问限制 | 可继承,可在任意地方访问 |
(1)属性通常使用private封装起来。
(2)方法一般使用public用于被调用。
(3)会被子类继承的方法,通常使用protected。
注意:protected修饰符的成员可以被同一包内的子类和不同包内的子类访问。
2.非访问修饰符
1.final 可以修饰成员方法,成员变量,类
修饰方法:表明该方法是最终方法,不能被重写
修饰变量:表明该变量是常量,不能再次被赋值
修饰类:表明该类是最终类,不能被继承
2.static 可以修饰成员方法,成员变量
被类的所有对象共享,可以通过类名调用,也可以通过对象名调用
只有静态成员变量和方法可以直接在静态成员方法中访问 ,非静态的不能访问。
3.abstract
用于声明抽象类和抽象方法。抽象类是不能被实例化的,只能作为其他类的基类。抽象方法在抽象类中只有方法签名,没有具体实现,需要由子类来实现,一般接口中使用。
implements和extends的区别
1.extends是继承单个类的,可以使用父类的方法,也可以重写。
2.implements是用于实现类接口,可以实现一个或多个类的接口,接口的方法一般为空的,所以必须重写这一个或多个的。
继承的特性
1.子类拥有父类非 private 的属性、方法。
2.子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
3.子类可以用自己的方式实现父类的方法。
4.Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
5.提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。
抽象类和接口的区别
成员区别
抽象类 变量,常量,有构造方法,有抽象方法,也有非抽象方法
接口 常量,抽象方法
关系区别
类与类 继承,单继承
类与接口 实现,可以单实现,也可以多实现
接口与接口 继承,单继承,多继承
设计理念区别
抽象类 对类抽象,包括属性、行为
接口 对行为抽象,主要是行为
重载与重写的区别
1.使用的情形不同
重载用于同一个类中,重写用于子类中
2.方法名和参数列表
重载的方法名相同,参数列表不同(参数的个数,类型,顺序)
重写的方法名相同参数列表也相同
3.返回值不同
重载的方法的返回类型可以不同,重写的方法的返回类型需要相同