小闫陪你入门 Java (二)

简介: 小闫陪你入门 Java (二)

Java 基础

5.常量

Java 中设置常量有些特殊,并不像 Python 中直接赋值即可,需要利用关键字 final 指示。如下:

  1. finaldouble CONSTANT =2.65

注意:使用关键字 final 修饰的常量不能被修改,只能用一次。而且常量名一般全使用大写。

与变量一致,常量也可以设置类常量,将其定义在 main 方法的外部,可以供类内所有方法使用。形式如下:

  1. publicstaticfinaldouble CONSTANT =2.65

const 是 Java 保留的关键字,因此自己不可使用。

6.Java 修饰符

Java 的修饰符是用来定义类、方法或者变量的关键字,通常放在语句的最前端。主要分为两类,一类是访问修饰符,一类是非访问修饰符。

6.1 访问控制修饰符

default:此修饰符为默认访问修饰符(不使用修饰符的情况下,默认为此修饰符)。使用默认访问修饰符声明的变量和方法,对在同一个包内的类是可以使用访问的。同时,此接口中的变量都默认声明为 publicstaticfinal,方法则默认权限为 public

String version = "1.1.0";
boolean processOrder() {
   return true;
}

private:此修饰符为私有访问修饰符。它声明的方法、构造方法和变量都只能被所在的类内访问。声明为私有访问类型的变量只能通过类中公共的 getter 方法被外部类访问,而且类和接口不能声明为 private

私有访问修饰符是为了安全起见,保护私有内容不被访问,从而泄漏代码。

public:此修饰符为公有访问修饰符。被它声明的类、方法、构造方法和接口都能被其他任何类访问。如果需要使用其他包内的类,那么就需要导入了。还有一点,类所有的公有方法,都如同 Python 一样,可以被其子类继承。

Java 中的 main() 方法必须设置成共有的,否则解释器不能运行。

protected:此修饰符为受保护的访问修饰符。此修饰符需分两种情况来分析说明:第一种是子类和基类在同一个包中时,包中的类可以访问任何声明为 protected 的方法、构造器和变量等;第二种是子类和基类不在同一包中时,子类实例对象可以访问其从基类继承的被声明为 protected 方法,而不能访问基类实例对象的 protected 方法。有点绕,好好理解一下。

protected 可以修饰数据成员、构造方法和方法,但是不能修饰类,当然,内部类不算。接口和接口的成员变量以及成员方法不能声明为 protected。

详解可看文章https://www.runoob.com/w3cnote/java-protected-keyword-detailed-explanation.html

访问控制和继承

1.父类中声明为 public 的方法在子类中也必须为 public。

2.父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。

3.父类中声明为 private 的方法,不能够被继承。

6.2 非访问修饰符

1. static 修饰符,用来修饰类方法和类变量。

2. final 修饰符,用来修饰类、方法和变量。final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

final 修饰符通常和 static 修饰符一起使用来创建类常量。

3. abstract 修饰符,用来创建抽象类和抽象方法。

一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。

4. synchronizedvolatile 修饰符,主要用于线程的编程。

synchronized 关键字声明的方法同一时间只能被一个线程访问。synchronized 修饰符可以应用于四个访问修饰符。

序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。

volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。

抽象类和抽象方法

抽象类顾名思义,是抽象的,不能创建实例对象。它存活的唯一理由就是为了将来对该类进行扩充。抽象类中可以包含抽象方法也可以包含非抽象方法。如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。

抽象方法就是没有实现,只是有这么个方法,具体实现在子类中书写。抽象方法不能被声明成 final 和 static。任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。抽象方法的声明以分号结尾,例如:

  1. publicabstract sample();
相关文章
|
17天前
|
开发框架 IDE Java
java制作游戏,如何使用libgdx,入门级别教学
本文是一篇入门级教程,介绍了如何使用libgdx游戏开发框架创建一个简单的游戏项目,包括访问libgdx官网、设置项目、下载项目生成工具,并在IDE中运行生成的项目。
34 1
java制作游戏,如何使用libgdx,入门级别教学
|
8天前
|
安全 Java 测试技术
🌟Java零基础-反射:从入门到精通
【10月更文挑战第4天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
14 2
|
1月前
|
Java 程序员 UED
Java中的异常处理:从入门到精通
【9月更文挑战第23天】在Java编程的世界中,异常是程序执行过程中不可避免的事件,它们可能会中断正常的流程并导致程序崩溃。本文将通过浅显易懂的方式,引导你理解Java异常处理的基本概念和高级技巧,帮助你编写更健壮、更可靠的代码。我们将一起探索如何捕获和处理异常,以及如何使用自定义异常来增强程序的逻辑和用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的见解和实用的技巧。
35 4
|
2月前
|
算法 Java 开发者
Java 编程入门:从零到一的旅程
本文将带领读者开启Java编程之旅,从最基础的语法入手,逐步深入到面向对象的核心概念。通过实例代码演示,我们将一起探索如何定义类和对象、实现继承与多态,并解决常见的编程挑战。无论你是编程新手还是希望巩固基础的开发者,这篇文章都将为你提供有价值的指导和灵感。
|
1月前
|
Java 程序员
Java中的异常处理:从入门到精通
在Java编程的世界中,异常处理是保持程序稳定性和可靠性的关键。本文将通过一个独特的视角—把异常处理比作一场“捉迷藏”游戏—来探讨如何在Java中有效管理异常。我们将一起学习如何识别、捕捉以及处理可能出现的异常,确保你的程序即使在面对不可预见的错误时也能优雅地运行。准备好了吗?让我们开始这场寻找并解决Java异常的冒险吧!
|
2月前
|
Java 程序员 UED
Java 中的异常处理:从入门到精通
【8月更文挑战第31天】在Java编程的世界中,异常处理是保持应用稳定性的重要机制。本文将引导你理解异常的本质,学会如何使用try-catch语句来捕获和处理异常,并探索自定义异常类的魅力。我们将一起深入异常的世界,让你的代码更加健壮和用户友好。
|
2月前
|
Java 数据库连接 开发者
Java中的异常处理:从入门到精通
【8月更文挑战第31天】 在编程世界中,错误和异常就像是不请自来的客人,总是在不经意间打扰我们的程序运行。Java语言通过其异常处理机制,为开发者提供了一套优雅的“待客之道”。本文将带你走进Java异常处理的世界,从基础语法到高级技巧,再到最佳实践,让你的程序在面对意外时,也能从容不迫,优雅应对。
|
5月前
|
安全 Java
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)
从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)
|
4月前
|
存储 Java API
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
74 0