Java基础巩固系列 权限修饰符

本文详细介绍了权限修饰符public、private、protected及缺省的作用范围,包括它们如何影响类成员的可见性和访问级别,并提供了一个清晰的访问权限表格进行说明。

权限修饰符有哪些?

public   private   protected  缺省    (可以用来修饰属性、方法)

 访问权限表

修饰符类内部同一个包子类任何地方
private   
(缺省)  
protected 
public

注:

1.权限从大到小排列:public > protected > 缺省 > private

2.修饰类(class)的权限只有public  缺省

复习 Java 基础知识可以从语言的基本结构、语法、核心概念以及常见类库等方面入手。以下是对 Java 基础知识的整理与归纳,结合了相关知识点的扩展说明: ### 一、Java 语言基础 Java 是一种静态类型、面向对象的编程语言,其基础语法和结构包括: 1. **标识符定义规则** 标识符用于命名类、变量、方法等,命名规则包括: - 只能包含字母、数字、下划线和美元符号; - 不能以数字开头; - 不能是 Java 的关键字(如 `int`, `class` 等)。 2. **注释** Java 支持三种注释方式: - 单行注释:`// 注释内容` - 多行注释:`/* 注释内容 */` - 文档注释:`/** 注释内容 */`,用于生成 API 文档。 3. **变量与常量** - **变量**:在程序运行过程中值可以变化的数据项。 - **常量**:使用 `final` 关键字修饰的不可变值,例如 `final int MAX_VALUE = 100;` [^3]。 4. **基本数据类型** Java 提供了八种基本数据类型: - 整数型:`byte`(1 字节)、`short`(2 字节)、`int`(4 字节)、`long`(8 字节) - 浮点型:`float`(4 字节)、`double`(8 字节) - 字符型:`char`(2 字节) - 布尔型:`boolean`(仅能存储 `true` 或 `false`) 值得注意的是,Java 的基本数据类型的包装类(如 `Integer`, `Double`)在某些情况下会使用缓存机制优化性能。例如,`Integer` 缓存了 [-128, 127] 范围内的数值 [^2]。 5. **运算符及表达式** Java 支持多种运算符,包括: - 算术运算符:`+`, `-`, `*`, `/`, `%` - 比较运算符:`==`, `!=`, `>`, `<`, `>=`, `<=` - 逻辑运算符:`&&`, `||`, `!` - 位运算符:`&`, `|`, `^`, `~`, `<<`, `>>`, `>>>` 6. **类型转换** Java 支持自动类型转换(隐式转换)和强制类型转换(显式转换): ```java int a = 100; double b = a; // 自动转换 int c = (int) b; // 强制转换 ``` 7. **标准输入输出** 使用 `System.out.println()` 进行输出,使用 `Scanner` 类进行输入操作: ```java import java.util.Scanner; Scanner scanner = new Scanner(System.in); String input = scanner.nextLine(); ``` 8. **控制语句** - 条件语句:`if`, `else if`, `else`, `switch` - 循环语句:`for`, `while`, `do-while` - 跳转语句:`break`, `continue`, `return` 9. **数组** 数组是相同数据类型的元素集合,声明方式如下: ```java int[] arr = new int[5]; // 声明一个长度为 5 的整型数组 int[] arr2 = {1, 2, 3, 4, 5}; // 直接初始化 ``` ### 二、Java 面向对象编程 Java 是一门面向对象的语言,核心概念包括类、对象、继承、多态、接口等。 1. **类与对象** 类是对象的模板,对象是类的实例。类可以包含成员变量和成员方法: ```java class Person { String name; int age; void sayHello() { System.out.println("Hello, my name is " + name); } } ``` 2. **访问权限修饰符** - `private`:仅本类可访问 - `default`:包内可访问 - `protected`:包内及子类可访问 - `public`:所有类可访问 3. **构造方法与 `this` 关键字** 构造方法用于初始化对象,方法名与类名相同且无返回值: ```java class Person { String name; Person(String name) { this.name = name; // this 表示当前对象 } } ``` 4. **继承与 `super` 关键字** 子类可以继承父类的属性和方法,使用 `super()` 调用父类构造方法: ```java class Animal { void eat() { System.out.println("Animal is eating"); } } class Dog extends Animal { Dog() { super(); // 调用父类构造方法 } } ``` 5. **抽象类与接口** - **抽象类**:使用 `abstract` 关键字定义,不能实例化,可以包含抽象方法。 - **接口**:使用 `interface` 定义,接口中的方法默认为 `public abstract`,实现接口使用 `implements` 关键字。 6. **多态** 多态是指一个对象具有多种形态,通常表现为方法的重写和向上转型: ```java Animal a = new Dog(); // 向上转型 a.eat(); // 动态绑定,调用 Dog 的 eat 方法 ``` ### 三、异常处理 Java 的异常处理机制包括 `try-catch-finally`、`throws` 和 `throw`。 1. **try-catch-finally** ```java try { // 可能抛出异常的代码 } catch (Exception e) { // 异常处理 } finally { // 无论是否异常都会执行 } ``` 2. **throws 和 throw** - `throws`:在方法声明中抛出异常 - `throw`:手动抛出异常对象 ### 四、Java 常用类库 1. **String 与 StringBuffer** - `String` 是不可变字符串类 - `StringBuffer` 是线程安全的可变字符串类 2. **Math 类** 提供数学运算方法,如 `Math.sqrt()`、`Math.random()` 等。 3. **包装类** 每个基本数据类型都有对应的包装类,如 `Integer`, `Double` 等,并支持自动装箱与拆箱。 4. **集合类** - `List`:有序、可重复的集合,如 `ArrayList`, `LinkedList` - `Set`:无序、不可重复的集合,如 `HashSet`, `TreeSet` - `Map`:键值对集合,如 `HashMap`, `TreeMap` 5. **IO 流** - 字节流:`InputStream`, `OutputStream` - 字符流:`Reader`, `Writer` - 缓冲流:`BufferedReader`, `BufferedWriter` ### 五、其他重要概念 1. **final 关键字** - 修饰类:类不能被继承 - 修饰方法:方法不能被重写 - 修饰变量:变量值不可变 [^3] 2. **static 关键字** - 修饰变量或方法:属于类而不是对象 - 静态代码块:在类加载时执行 3. **内部类** - 成员内部类、局部内部类、匿名内部类等 ### 六、Java 多线程与网络编程 1. **多线程** - 继承 `Thread` 类或实现 `Runnable` 接口 - 使用 `synchronized` 实现线程同步 2. **网络编程** - 使用 `URL` 和 `URLConnection` 进行网络通信 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值