八、JavaSE进阶之【Java 包机制与访问权限修饰符】。

简介: 包其实就是目录,特别是项目比较大,java 文件特别多的情况下,我们应该分目录管理,在 java中称为分包管理,包名称通常采用小写。,java 访问级别修饰符主要包括:private protected public,可以限定其他类对该类、属性和方法的使用权限。

第一章:包机制和import


1.1包机制


包其实就是目录,特别是项目比较大,java 文件特别多的情况下,我们应该分目录管理,在 java中称为分包管理,包名称通常采用小写。


重点:

1、包最好采用小写字母

2、包的命名应该有规则,不能重复,一般采用公司网站逆序,

如:com.xxxxx.项目名称.模块名称com.xxxx.exam

3.package 必须放到 所有语句的第一行,注释除外


代码演示:


package com.xxxx.exam;
public class PackageTest01 {
public static void main(String[] args) {
System.outprintln("Hello Package!!!");
  }
 }


2.1 import


1.采用 import 引入需要使用的类


import com.xxxx.exam.model.User;
import com.xxxx.exam.model.Student;
import com.xxxx.exam.model.Employee;

2.可以采用 * 通配符引入包下的所有类


import com.xxxx.exam.model.*;


注意:


如果都在同一个包下就不需要 import 引入了,以上的示例都没有包,可以理解为都在同一个包下,在实际开发过程中不应该这样做,必须建立包


代码演示:


package com.xxxx.exam;
import java.util.Scanner;
public class PackageTest02 {
public static void main(String[] args) {
  User user = new User();
  Scanner s=new Scanner(System.in);
  int x=s.nextInt();
  user.setUserId(10000);
  user.setUserName("张三");
  System.out.println("user.id=" + user.getUserId());
  System.out.println("user.name=" + user.getUserName());
  }
 }


第二章:访问权限修饰符


java 访问级别修饰符主要包括:private protected public,可以限定其他类对该类、属性和方法的使用权限


1.1 private


代码演示:


public class PrivateTest01 {
public static void main(String[] args) {
  A a = new A();
//不能访问,private 声明的变量或方法,只能在同一个类中使用
  System.out.println(a.id);
  } 
}
class A {
  private int id;
}


2.1 protected


在同一个包下,建立类 ProtectedTest01、A,并建立 B 继承 A`


public class ProtectedTest01 {
public static void main(String[] args) {
    A a = new A();
    a.method1();
    A b = new B();
    b.method1();
    B b1 = new B();
    b1.method3(); 
  }
 }
class A {
//采用 protected 声明的变量或方法只有子类或同一个包下的类可以调用
  protected int id = 100;
  public void method1() {
    System.out.println(id);
  }
  protected void method2() {
    System.out.println("A.method2()");
  }
}
class B extends A {
  public void method1() {
//可以正确调用
//因为和 A在同一个包下
    System.out.println(id);
  }
  public void method3() {
//可以正确调用
  method2();  
  }
 }


总结:

1.png


public:公开的,表示所有地方都能用。

private:私人的,表示只能在类的内部使用

protected:被保护的,表示只能在类内部、同一个包下,子类中使用。

default:表示只能在类内部和同一个包下使用。**


相关文章
|
2天前
|
缓存 安全 Java
7张图带你轻松理解Java 线程安全,java缓存机制面试
7张图带你轻松理解Java 线程安全,java缓存机制面试
|
1天前
|
安全 Java API
Java进阶-Java Stream API详解与使用
效、更易于维护的代码,同时享受到函数式编程带来的好处。
9 2
|
2天前
|
存储 关系型数据库 MySQL
《MySQL 入门教程》第 05 篇 账户和权限,Java高并发编程详解深入理解pdf
《MySQL 入门教程》第 05 篇 账户和权限,Java高并发编程详解深入理解pdf
|
2天前
|
NoSQL 算法 Java
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
【redis源码学习】持久化机制,java程序员面试算法宝典pdf
|
4天前
|
Java 编译器 Shell
Java 包(package)
5月更文挑战第8天
|
4天前
|
Java
【Java开发指南 | 第三十一篇】Java 包(package)
【Java开发指南 | 第三十一篇】Java 包(package)
11 1
|
4天前
|
消息中间件 安全 前端开发
字节面试:说说Java中的锁机制?
Java 中的锁(Locking)机制主要是为了解决多线程环境下,对共享资源并发访问时的同步和互斥控制,以确保共享资源的安全访问。 锁的作用主要体现在以下几个方面: 1. **互斥访问**:确保在任何时刻,只有一个线程能够访问特定的资源或执行特定的代码段。这防止了多个线程同时修改同一资源导致的数据不一致问题。 2. **内存可见性**:通过锁的获取和释放,可以确保在锁保护的代码块中对共享变量的修改对其他线程可见。这是因为 Java 内存模型(JMM)规定,对锁的释放会把修改过的共享变量从线程的工作内存刷新到主内存中,而获取锁时会从主内存中读取最新的共享变量值。 3. **保证原子性**:锁
18 1
|
4天前
|
安全 Java 数据安全/隐私保护
Java一分钟之-Java反射机制:动态操作类与对象
【5月更文挑战第12天】本文介绍了Java反射机制的基本用法,包括获取Class对象、创建对象、访问字段和调用方法。同时,讨论了常见的问题和易错点,如忽略访问权限检查、未捕获异常以及性能损耗,并提供了相应的避免策略。理解反射的工作原理和合理使用有助于提升代码灵活性,但需注意其带来的安全风险和性能影响。
23 4
|
4天前
|
存储 安全 Java
Java一分钟之-集合框架进阶:Set接口与HashSet
【5月更文挑战第10天】本文介绍了Java集合框架中的`Set`接口和`HashSet`类。`Set`接口继承自`Collection`,特征是不允许重复元素,顺序不确定。`HashSet`是`Set`的实现,基于哈希表,提供快速添加、删除和查找操作,但无序且非线程安全。文章讨论了`HashSet`的特性、常见问题(如元素比较规则、非唯一性和线程安全性)以及如何避免这些问题,并提供了代码示例展示基本操作和自定义对象的使用。理解这些概念和注意事项能提升代码效率和可维护性。
12 0
|
4天前
|
Java 数据安全/隐私保护
java中异常处理机制
java中异常处理机制
14 1