意气风发啊骑上我快乐的小摩托良心公众号啊!我上墙了你开始了嚯嚯嚯嚯嚯哈哈哈哈哈皮皮虾我们走可乐在厨房 红牛在冰箱6666666
看弹幕,点关注
"
A goal should scare you a little, and excite you a lot.
——Joe Vitale
一个目标应该稍微有点吓人,更多的应该是令人兴奋。
"
前文回顾『小闫陪你入门 Java (一)』
Java 中设置常量有些特殊,并不像 Python 中直接赋值即可,需要利用关键字 final 指示。如下:
final double CONSTANT = 2.65
注意:使用关键字 final 修饰的常量不能被修改,只能用一次。而且常量名一般全使用大写。
与变量一致,常量也可以设置类常量,将其定义在 main
方法的外部,可以供类内所有方法使用。形式如下:
public static final double CONSTANT = 2.65
const 是 Java 保留的关键字,因此自己不可使用。
Java 的修饰符是用来定义类、方法或者变量的关键字,通常放在语句的最前端。主要分为两类,一类是访问修饰符,一类是非访问修饰符。
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 的方法,不能够被继承。
1. static
修饰符,用来修饰类方法和类变量。
2. final
修饰符,用来修饰类、方法和变量。final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
final 修饰符通常和 static 修饰符一起使用来创建类常量。
3. abstract
修饰符,用来创建抽象类和抽象方法。
一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。
4. synchronized
和 volatile
修饰符,主要用于线程的编程。
synchronized 关键字声明的方法同一时间只能被一个线程访问。synchronized 修饰符可以应用于四个访问修饰符。 序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。 volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
抽象类顾名思义,是抽象的,不能创建实例对象。它存活的唯一理由就是为了将来对该类进行扩充。抽象类中可以包含抽象方法也可以包含非抽象方法。如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。
抽象方法就是没有实现,只是有这么个方法,具体实现在子类中书写。抽象方法不能被声明成 final 和 static。任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。抽象方法的声明以分号结尾,例如:
public abstract sample();