java基础学习之小知识点篇一
1.关键字
关键字就是Java语言中已经被赋予了特定意义的一些单词。不可以把关键字作为标识符来用。
错误示范:
public void catch(String name){
System.out.println(name+"抓老鼠");
}
编译结果将显示错误信息,提示缺少标识符:
Test1_Animal.java:34: 错误: 需要<标识符>
public void catch(String name){
^
Test1_Animal.java:34: 错误: 需要'('
public void catch(String name){
^
Test1_Animal.java:34: 错误: 非法的类型开始
public void catch(String name){
^
Test1_Animal.java:34: 错误: 需要';'
public void catch(String name){
^
Test1_Animal.java:34: 错误: 需要<标识符>
public void catch(String name){
^
java关键字分类
功能类型 | 关键字 |
---|---|
访问控制 | private 私有的、protected 受保护的、public 公共的 |
类、方法和变量修饰符 | abstract 声明抽象、class 类、extends 扩允,继承 final 终极,不可改变的、implements 实现、interface 接口、native 本地、new 创建 、static 静态、strictfp 严格,精准、synchronized 线程,同步、transient 短暂、volatile 易失 |
程序控制语句 | break 跳出循环、continue 继续、return 返回、do 运行、while 循环、if 如果、else 反之、for 循环 、instanceof 实例 、switch 开关、case 返回开关里的结果 、default 默认 |
错误处理 | try 捕获异常、catch 处理异常、finally 有没有异常都执行、throw 抛出一个异常对象、throws 声明一个异常可能被抛出 、assert 断言 |
包相关 | import 引入、package 包 |
基本类型 | boolean 布尔型、byte 字节型、char 字符型、double 双精度、float 浮点、int 整型 、long 长整型 、short 短整型、null 空 、true 真、false 假 、enum 枚举 |
变量引用 | super 父类,超类、this 本类 、void 无返回值 |
另有两个保留字(const, goto),总计53个特殊单词。
不可共存的关键字
abstract 和static
abstract修饰的抽象方法无方法体,static修饰可用类名.调用。类名.调用抽象方法,无意义。
abstract 和final
abstract强制子类重写,final禁止子类重写,矛盾。
abstract和private
abstract让子类看到并且强制重写,private不让子类看到,矛盾。
权限修饰符
????
2.抽象类和接口
他们是提供规则的方式,其中广义接口包括各种对外提供规则的。
- 抽象类 被继承体现"is a"的关系。抽象类中定义该继承体系的共性功能。
- 接口 被实现体现"like a"的关系。接口中定义该继承体系的扩展功能。
两者对比
抽象类 | 接口 | |
---|---|---|
表示法 | abstract class 类名{ } | interface 接口名{} |
成员变量 | 变量或常量 | 默认public static final修饰,可省略但建议手动码上 |
构造方法 | 有(有参/无参) | 无 |
成员方法 | a.抽象方法,用于限定规则;b.普通方法,继承提高代码复用性 | 只有抽象方法,默认public abstract修饰,可省略但建议手动码上 |
两者共同点
抽象类和接口的共同特点 | |
---|---|
实例化 | 不能对象实例化,只能多态实例化。 |
子类 | 两种情况: a.抽象类(其中接口意义不大);b.具体类,要求重写抽象类/接口的所有抽象方法 |
补充:
- 没有抽象方法的抽象类可防止其他类创建本来对象,有意义。
- 一个类不继承任何类,默认继承object类,即
class Demo extends Object implements Inter{ } 。
3.继承与实现
类与类
继承关系,只能单继承,不可以多层继承。
class Son extends Father{ }
类与接口
实现关系,可以单实现,也可以多实现。
在继承一个类的同时实现多个接口。
class Son extends Father implements InterA,InterB{ }
接口与接口
继承关系,可以单继承,也可以多继承。
interface InterSon extends InterFather,InterMother{ }
4.包
包即为文件夹,解决同名问题,有助于逻辑分类代码文件。
包也是一种封装。
package com.mona;
- 多级报名,用“.”分开即可。
- 包语句必须是java文件的第一句有效语句,一个文件一句。
- 有包后,完整类名为 “包名.类名”。
没有IDE编译运行
javac -d 路径 类名
javac -d . Demo1.java
java 类名
java com.mona.Demo1
不同包下类之间的访问
a.用完整包名访问。
b.导包。
import com.mona.Demo1; //导入具体类
import com.mona.*; //*是通配符,导入com->mona下的所有类,效率较低。
5.访问权限
同一个类 | 包内的子类和无关类 | 包外的子类 | 包外的无关类 | |
---|---|---|---|---|
public修饰 | √ | √ | √ | √ |
protect修饰 | √ | √ | √ | |
默认 | √ | √ | ||
private修饰 | √ |
心得:目前仍处在很基础基础的积累阶段,所以记的笔记也难免显得太过搬运工。希望自己能在java编程方面越来越有自己的想法。继续努力!