首页 > 编程语言 >java基础

java基础

时间:2024-06-09 22:32:10浏览次数:30  
标签:异常 java 变量 静态 子类 基础 方法 重写

java题目练习day01

Java提供的四种访问控制符

Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。

  • default:在同一个包里面可见,不适用任何修饰符。使用对象:类、接口、变量、方法。

  • private:在同一类中可见。使用对象:变量、方法。注意:不能修饰类(外部类)

  • public:对所有类可见。使用对象:类、接口、变量、方法。

  • protected:对同一包内的类和所有子类可见。使用对象:变量方法。注意:不能修饰类(外部类)。

    1717913797417

Object类

Object类是所有类的根类,位于java.lang包中。如果一个类没有显示地继承另外一个类,那么它默认继承Object类。Object是java对象继承的最顶层,所有的java类都直接或间接地继承Object类。

1717919595566

Java创建对象的方式

1.使用new关键字创建:最常见的方式

1717920342818

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关键字声明的成员属于类本身,而不是类的某个特定实例。

1717921627640

1.静态变量

  • 类变量:static变量也称为类变量,它被所有类实例共享。在对象之间不会有独立的变量副本;所有实例都共享一个静态变量。

  • 初始化:静态变量在类加载时初始化,仅初始化一次。

2.静态方法

  • 类方法:静态方法属于类而不属于类的任何对象,可以在没有创建类实例的情况夏调用静态方法。

  • 限制:静态方法只能直接访问类的静态成员,不能直接访问实例成员,不能使用this或super关键字。

3.静态代码块

  • 静态代码块:用于初始化类的静态变量。静态变量在类加载时执行,并且只执行一次。

4.静态内部类

  • 独立性:静态内部类时嵌套在另一个类内部的静态类。它可以在没有外部类实例的情况下被实例化,并且只能访问外部类的静态成员。

使用static关键字的优势

  • 节省内存:由于静态成员被所有实例共享,因此可以减少内存的使用。

  • 无需创建对象就可以访问:静态方法和静态变量可以在没有创建类的实例的情况下访问,提供了一种访问类级别方法和变量的方便方式。

方法的重写

方法的重写是发生在子类里面的,遵循三同一大一小原则

构造方法不能被重写。如果不能继承一个方法,则不能重写这个方法。

三同:

方法名相同;

参数列表必须完全与被重写方法的相同;

返回类型必须完全与被重写方法的返回类型相同;

一大:

访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。

一小:

父类的成员方法只能被它的子类重写。

声明为final的方法不能被重写。

声明为static的方法不能被重写,但是能够被再次声明。

子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。

子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。

重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。

方法的重载

方法的重载是发生在同一类里面的

被重载的方法必须改变参数列表(参数个数或类型或顺序不一样);

被重载的方法可以改变返回类型;

被重载的方法可以改变访问修饰符;

被重载的方法可以声明新的或更广的检查异常;

方法能够在同一个类中或者在一个子类中被重载。

无法以返回值类型作为重载函数的区分标准。

& 按位与运算符

用于对两个整数进行按位与操作。按位与运算符对两个操作数的每一位执行与操作,如果对应位都为 1,则结果为 1,否则结果为 0。

& 运算符还可以用于布尔类型的操作数,执行逻辑与操作。当 & 运算符的两个操作数都为 true 时,结果为 true;否则结果为 false。

异常处理

1717924049275

编译时异常必须显示处理,运行时异常交给虚拟机。

运行时异常可以不处理。当出现这样的异常时,总是由虚拟机接管。比如我们从来没有人去处理过Null Pointer Exception异常,它就是运行时异常,并且这种异常还是最常见的异常之一。出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被Catch块处理的。只不过往往不对它处理罢了。也就是说,如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。

标签:异常,java,变量,静态,子类,基础,方法,重写
From: https://blog.csdn.net/weixin_58315393/article/details/139567242

相关文章

  • Vue2基础知识:v-model在组件传值中的使用,表单组件如何封装,如何用v-model简化父传子,子传
    要想要了解v-model在组件传值中如何使用首先得先了解表单组件如何封装数据在父组件那里,表单结构在子组件那里。1.表单组件如何封装1.父传子:数据应该是父组件props传递过来的,v-model拆解绑定数据。(为什么说是拆解呢?因为不可以直接v-model绑定,子组件只能改变自己的值,不能改变......
  • 【JavaScript】了解 Sass:现代 CSS 的强大预处理器
    我已经从你的全世界路过像一颗流星划过命运的天空很多话忍住了不能说出口珍藏在我的心中只留下一些回忆                     ......
  • AcWing算法基础课笔记——最小生成树与二分图
    目录朴素版prim算法——模板题AcWing858.Prim算法求最小生成树题目代码Kruskal算法——模板题AcWing859.Kruskal算法求最小生成树题目代码染色法判别二分图——模板题AcWing860.染色法判定二分图题目代码匈牙利算法——模板题AcWing861.二分图的......
  • AcWing算法基础课笔记——求最短路算法
    目录朴素dijkstra算法——模板题AcWing849.Dijkstra求最短路I题目代码堆优化版dijkstra——模板题AcWing850.Dijkstra求最短路II题目代码Bellman-Ford算法——模板题AcWing853.有边数限制的最短路题目代码spfa算法(队列优化的Bellman-Ford算法)——......
  • 【华为OD】D卷真题100分:数组拼接 JavaScript代码实现[思路+代码]
    【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript-CSDN博客JS、Java、C、C++、python代码实现:【华为OD】D卷真题100分:数组拼接JavaScript代码实现[思路+代码]-CSDN......
  • Javaweb01-HTTP协议
    HTTP协议1.HTTP协议概述定义与作用HTTP是超文本传输协议,用于定义服务端和客户端之间交换数据的过程和数据本身的的格式,同时HTTP是一种请求/响应式的协议,是一种应用层的协议优点支持客户端和服务器模式简单快速,通过Http请求和Http响应加快通信允许传输任意类型的数据,......
  • [AIGC] 字典树Trie树详解及其Java实现
    字典树,也称为Trie树或前缀树,是一种常见的搜索数据结构,广泛应用于字符串查询的场景中,比如网络词典的实现,或者是搜索引擎中词语的自动补全。文章目录Trie树的概念Trie树特性Trie树的操作插入操作查询操作Java实现Trie树Trie树的概念Trie树是一种特别的n叉树模型......
  • minio的一个基础使用案例:用户头像上传
    文章目录一、minio下载安装(Windows)二、案例需求分析三、后端接口开发一、minio下载安装(Windows)1.下载minio服务端和客户端minio下载地址2.手动搭建目录/minio/binmc.exeminio.exe/data/logs手动创建minio应用程序目录,如......
  • c语言基础篇A
    A1.程序和程序设计语言程序程序=算法+数据结构+程序设计方法+语言工具和环境数据结构:数据的类型和数据的组织形式算法:对数据操作的方法和步骤程序设计语言的种类第一代语言:机器语言第二代语言:汇编语言第三代语言:高级语言——面向过程语言——面向对象语言第四代语言:非......
  • c语言基础篇B
    B1.数据的输入与输出c语言本身不提供输入输出语句,输入和输出操作是由c函数库中的函数来实现的在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中include"stdio.h"或者includeB2.printf()函数(格式输出函数)函数作用:输出若干个任意类型的数......