当前位置: 首页 > news >正文

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()。}
}

相关文章:

  • BubbleML: A Multiphase Multiphysics Dataset and Benchmarks for Machine Learning
  • 数字科技如何助力博物馆设计,强化文物故事表现力?
  • Python私有成员变量:深入解析与实用指南
  • 直播商城源码-PC+APP+H5+小程序现成源码
  • MongoDB CRUD操作:可重试写入
  • WebSocket首次使用踩坑记录
  • 苹果将推出“Apple Intelligence”AI系统,专注于隐私和广泛应用|TodayAI
  • KafkaStream Local Store和Global Store区别和用法
  • docker pull image 报错 dial tcp 31.13.88.169:443: i/o timeout
  • Python 识别图片形式pdf的尝试(未解决)
  • 【JSP】如何在IDEA上部署JSP WEB开发项目
  • 贪心算法-加油站
  • c#与汇川plc通信
  • STM32 HAL库开发——入门篇(3):OLED、LCD
  • 骑砍2霸主MOD开发(11)-瓦兰迪亚火骑兵
  • @jsonView过滤属性
  • 【css3】浏览器内核及其兼容性
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Create React App 使用
  • gops —— Go 程序诊断分析工具
  • java8 Stream Pipelines 浅析
  • Less 日常用法
  • Linux各目录及每个目录的详细介绍
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Odoo domain写法及运用
  • Rancher如何对接Ceph-RBD块存储
  • Redis字符串类型内部编码剖析
  • webpack4 一点通
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 你真的知道 == 和 equals 的区别吗?
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 用Visual Studio开发以太坊智能合约
  • 怎样选择前端框架
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • Semaphore
  • 大数据全解:定义、价值及挑战
  • 通过调用文摘列表API获取文摘
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • ‌内网穿透技术‌总结
  • !!java web学习笔记(一到五)
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (1) caustics\
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (2)MFC+openGL单文档框架glFrame
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (floyd+补集) poj 3275
  • (poj1.2.1)1970(筛选法模拟)
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (汇总)os模块以及shutil模块对文件的操作
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路