final关键字概念
继承的出现提高了代码的复用性,并方便开发。但随之也有问题,有些类在描述完之后,不想被继承,
或者有些类中的部分方法功能是固定的,不想让子类重写。可是当子类继承了这些特殊类之后,
就可以对其中的方法进行重写,那怎么解决呢?
要解决上述的这些问题,需要使用到一个关键字final,final的意思为最终,不可变。
final是个修饰符,它可以用来修饰类,类的成员,以及局部变量。
ex:
class Yy {}
final class Fu extends Yy{} //可以继承Yy类
class Zi extends Fu{} //不能继承Fu类
static的概念
*概念
当在定义类的时候,类中都会有相应的属性和方法。而属性和方法都是通过创建本类对象调用的。
ex:
class Demo {
public static int num = 100;
}
class Test {
public static void main(String[] args) {
Demo d1 = new Demo();
Demo d2 = new Demo();
d1.num = 38;
System.out.println(d1.num);
System.out.println(d2.num);
}
}
匿名对象
* A:匿名对象的概述
* 匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。
* B:案例
public class Person{
public void eat(){
System.out.println();
}
}
创建一个普通对象
Person p = new Person();
创建一个匿名对象
new Person();
内部类的概述
将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称为内部类。
其他类也称为外部类。
* B: 什么时候使用内部类
在描述事物时,若一个事物内部还包含其他可能包含的事物,比如在描述汽车时,汽车中还包含这发动机,
这时发动机就可以使用内部类来描述。
class 房子 { //外部类
class 家具 { //内部类
}
}
包的概念
* A: 概念
java的包,其实就是我们电脑系统中的文件夹,包里存放的是类文件。
类中声明的包必须与实际class文件所在的文件夹情况相一致,即类声明在a包下,则生成的.class文件必须在a文件夹下,否则,程序运行时会找不到类。
声明格式
通常使用公司网址反写
兜兜程序员网址itdoudou.com那么网址反写就为com.itdoudou
包的访问
在访问类时,为了能够找到该类,必须使用含有包名的类全名(包名.类名)。
包名.包名….类名
如: java.util.Scanner
java.util.Random
cn.itdoudou.Demo
我们每次使用类时,都需要写很长的包名。很麻烦,我们可以通过import导包的方式来简化。
java.util.Random r1 = new java.util.Random();
java.util.Random r2 = new java.util.Random();
//导入包后的方式
import java.util.Random;
import java.util.Scanner;
//创建对象
Random r1 = new Random();
Random r2 = new Random();