java题目练习day01
Java提供的四种访问控制符
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。
-
default:在同一个包里面可见,不适用任何修饰符。使用对象:类、接口、变量、方法。
-
private:在同一类中可见。使用对象:变量、方法。注意:不能修饰类(外部类)
-
public:对所有类可见。使用对象:类、接口、变量、方法。
-
protected:对同一包内的类和所有子类可见。使用对象:变量方法。注意:不能修饰类(外部类)。
Object类
Object类是所有类的根类,位于java.lang包中。如果一个类没有显示地继承另外一个类,那么它默认继承Object类。Object是java对象继承的最顶层,所有的java类都直接或间接地继承Object类。
Java创建对象的方式
1.使用new关键字创建:最常见的方式
2.使用Class.forName()配合newInstance():反射机制创建对象。
3.使用clone()方法:克隆一个对象。
4.使用对象序列化和反序列化:通过读取字节数据恢复为对象。
5.使用Constructor.newInstance():反射中的Constructor创建对象。
switch case支持哪些数据类型
1.整型:所有的整型类型(int byte short long)以及他们的包装类。
2.枚举类型:允许使用枚举常量作为case标签。
3.字符串类型(string):从java7开始,switch语句支持字符串变量,允许使用字符串字面量作为case标签。
static关键字
主要用于创建类级别的变量和方法。它可以应用于变量、方法、代码块和嵌套类。使用static关键字声明的成员属于类本身,而不是类的某个特定实例。
1.静态变量
-
类变量:static变量也称为类变量,它被所有类实例共享。在对象之间不会有独立的变量副本;所有实例都共享一个静态变量。
-
初始化:静态变量在类加载时初始化,仅初始化一次。
2.静态方法
-
类方法:静态方法属于类而不属于类的任何对象,可以在没有创建类实例的情况夏调用静态方法。
-
限制:静态方法只能直接访问类的静态成员,不能直接访问实例成员,不能使用this或super关键字。
3.静态代码块
-
静态代码块:用于初始化类的静态变量。静态变量在类加载时执行,并且只执行一次。
4.静态内部类
-
独立性:静态内部类时嵌套在另一个类内部的静态类。它可以在没有外部类实例的情况下被实例化,并且只能访问外部类的静态成员。
使用static关键字的优势
-
节省内存:由于静态成员被所有实例共享,因此可以减少内存的使用。
-
无需创建对象就可以访问:静态方法和静态变量可以在没有创建类的实例的情况下访问,提供了一种访问类级别方法和变量的方便方式。
方法的重写
方法的重写是发生在子类里面的,遵循三同一大一小原则
构造方法不能被重写。如果不能继承一个方法,则不能重写这个方法。
三同:
方法名相同;
参数列表必须完全与被重写方法的相同;
返回类型必须完全与被重写方法的返回类型相同;
一大:
访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
一小:
父类的成员方法只能被它的子类重写。
声明为final的方法不能被重写。
声明为static的方法不能被重写,但是能够被再次声明。
子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。
重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。
方法的重载
方法的重载是发生在同一类里面的
被重载的方法必须改变参数列表(参数个数或类型或顺序不一样);
被重载的方法可以改变返回类型;
被重载的方法可以改变访问修饰符;
被重载的方法可以声明新的或更广的检查异常;
方法能够在同一个类中或者在一个子类中被重载。
无法以返回值类型作为重载函数的区分标准。
& 按位与运算符
用于对两个整数进行按位与操作。按位与运算符对两个操作数的每一位执行与操作,如果对应位都为 1,则结果为 1,否则结果为 0。
&
运算符还可以用于布尔类型的操作数,执行逻辑与操作。当 &
运算符的两个操作数都为 true 时,结果为 true;否则结果为 false。
异常处理
编译时异常必须显示处理,运行时异常交给虚拟机。
运行时异常可以不处理。当出现这样的异常时,总是由虚拟机接管。比如我们从来没有人去处理过Null Pointer Exception异常,它就是运行时异常,并且这种异常还是最常见的异常之一。出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被Catch块处理的。只不过往往不对它处理罢了。也就是说,如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。
标签:异常,java,变量,静态,子类,基础,方法,重写 From: https://blog.csdn.net/weixin_58315393/article/details/139567242