java第二十一课 —— 快捷键,包,访问修饰符

2024-06-07 23:28

本文主要是介绍java第二十一课 —— 快捷键,包,访问修饰符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IDEA 快捷键

  1. 删除行:Ctrl + Y
  2. 复制行:Ctrl + D
  3. 补全代码:Alt + /
  4. 添加取消注释:Ctrl + /
  5. 导入该行需要的类:Alt + Enter
  6. 快速格式化代码:Ctrl + Shift + L
  7. 快速运行程序:Ctrl + Shift + F10
  8. 生成构造器:Alt + Insert
  9. 查看一个类的层级关系:Ctrl + H
  10. 自动分配变量名:在后面.var

IDEA 模板 / 自定义模板

在这里插入图片描述

包的三大作用

  1. 区分相同名字的类
  2. 当类很多时,可以很好的管理类 [看Java API 文档]
  3. 控制访问范围

包的基本语法

package com.hspedu;

说明:

  1. package 关键字,表示打包。
  2. com.hspedu; 表示包名。

包的本质

实际上就是创建不同的文件夹 / 目录来保存类文件,示意图如下:

在这里插入图片描述

包的命名

命名规则

只能包含数字、字母、下划线、小圆点,但不能用数字开头,不能是关键字或保留字。

如:

demo.class.exec1 //错误,包含关键字
demo.12a  //错误,数字开头
demo.ab12.oa  //正确

命名规范

一般是小写字母 + 小圆点一般是 com.公司名.项目名.业务模块名

比如:

com.hspedu.oa.model;
com.hspedu.oa.controller;
举例:
com.sina.crm.user //用户模块
com.sina.crm.order //订单模块
com.sina.crm.utils //工具类

常用的包

java.lang.*  //lang包是基本包,默认引入,不需要再引入
java.util.*  //util包,系统提供的工具包,工具类,使用 Scanner
java.net.*   //网络包,网络开发
java.awt.*   //是做java的界面开发,GUI

如何引入包

语法: import 包;

我们引入一个包的主要目的是要使用该包下的类。

比如:

  1. import java.util.Scanner; // 就只是引入一个类 Scanner。

  2. import java.util.*; // 表示将 java.util 包所有都引入。我们需要使用到哪个类,就导入哪个类即可,不建议使用 * 导入

包的注意事项和细节

  1. package 的作用是声明当前类所在的包,需要放在类的最上面,一个类中最多只有一个 package。
  2. import 指令,位置放在 package 的下面,要求在类定义前面,可以有多句且没有顺序。

类定义的进一步完善

在这里插入图片描述

访问修饰符

基本介绍

java 提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围):

  1. 公开级别:用 public 修饰,对外公开
  2. 受保护级别:用 protected 修饰,对子类和同一个包中的类公开
  3. 默认级别:没有修饰符号,向同一个包的类公开
  4. 私有级别:用 private 修饰,只有类本身可以访问,不对外公开

4 种访问修饰符的访问范围:

在这里插入图片描述

使用的注意事项

  1. 修饰符可以用来修饰类中的属性,成员方法以及类
  2. 只有默认的和 public 才能修饰!并且遵循上述访问权限的特点。
  3. 成员方法的访问规则和属性完全一样。

例子:

在这里插入图片描述

在 modifier 包下:

  1. A 类
package com.hspedu.modifier;public class A {//四个属性,分别使用不同的访问修饰符来修饰public int n1 = 100;protected int n2 = 200;int n3 = 300;private int n4 = 400;//在同一个类中,可以访问 public protected 默认 private 修饰的属性和方法public void m1(){System.out.println("n1 = " + n1 + " n2 = " + n2 + " n3 = " + n3 + " n4 = " + n4);//属性,都可以访问}protected void m2(){}void m3(){}private void m4(){}public void hi(){m1();m2();m3();m4();//成员方法,都可以访问}
}
  1. B 类
package com.hspedu.modifier;public class B {public void say(){A a = new A();//在同一个包下,可以访问 public,protected 和 默认修饰的属性或方法,不能访问 private 属性或方法。System.out.println("n1 = " + a.n1 + " n2 = " + a.n2 + " n3 = " + a.n3);//属性,不能访问 a.n4a.m1();a.m2();a.m3();//成员方法,不能访问 a.m4()}
}
  1. Test 类
package com.hspedu.modifier;public class Test {public static void main(String[] args) {A a = new A();a.m1();B b = new B();b.say();}
}
// 只有默认的和 public 才能修饰类
class Tiger{}

在 pkg 包下:

  1. Test 类
package com.hspedu.pkg;import com.hspedu.modifier.A;public class Test {public static void main(String[] args) {A a = new A();//在不同包下,可以访问 public 修饰的属性或方法//但是不能访问呢 protected ,默认, private 修饰的属性或方法System.out.println("n1 = " + a.n1);//属性,不能访问 a.n2, a.n3, a.n4a.m1();//成员方法,不能访问 a.m2(), a.m3(), a.m4()。}
}

这篇关于java第二十一课 —— 快捷键,包,访问修饰符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1040597

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问