一、IDEA使用
1.介绍
2.IDEA的安装
官网:https://www.jetbrains.com/
3.创建第一个Java项目
4.使用技巧
(1)设置字体和颜色主题
设置导航字体:File→Settings→Appearence & Behavior→Appearance
设置颜色主题:
设置代码字体:File→Settings→Editor→Font
设置为粗体:File→Settings→Editor→Color Scheme→General
设置颜色主题:File→Settings→Editor→Color Scheme
(2)字符编码设置
File→Settings→Editor→File Encodings
之前在Sublime Text 3将文件编码保存为GBK,是因为命令提示符的属性是GBK。
(3)设置参数提示信息
File→Settings→Editor→Inlay Hints→Java
5.课堂练习
使用IDEA开发一个java项目,创建一个类MyTools,编写一个方法,可以完成对int数组冒泡排序的功能。
在IDEA,当我们run一个文件时,会先编译成.class,再运行。
6.IDEA常用快捷键
(1)删除当前行:默认是ctrl+Y,自己配置为ctrl+D
(2)复制当前行:自己配置为ctrl+alt+向下箭头
(3)补全代码:alt+/
(4)添加注释和取消注释:ctrl+/(第一次是添加注释,第二次是取消注释)
(5)导入该行需要的类:先配置anto import ,然后使用alt+enter
File→Settings...→Editor→General→Auto Import→勾选这两项
(6)快速调整代码格式:ctrl+alt+L
(7)快速运行程序:自己配置为alt+R
(8)生成构造器、get和set方法、重写toString方法等:alt+insert
(9)查看一个类的层级关系:(ctrl+H)→右击→Diagram→show Diagram...
在类的层次关系图中添加子类:Ctrl+Alt+B
选择如下图标,可在类的层次关系图中显示类中的方法:
(10)定位方法:将光标放到一个方法上,输入ctrl+B,可以选择定位到方法
(11)自动地分配变量名:通过在后面加.var
如何配置快捷键?
File→Settings...→Keymap→搜索栏🔍→右击要添加快捷键的操作→Remove...(删除原本的快捷键)→Add Keyboard Shortcut(配置新的快捷键)
7.模板/自定义模板
file→settings→editor→Live templates→
查看有哪些模板快捷键/可以自己增加模板
8.自动生成注释
file→settings→editor→File and Code Templates→
二、包
1.基本介绍
包的三大作用:
(1)区分相同名字的类
(2)当类很多时,可以很好地管理类
(3)控制访问范围
包的基本语法:
package com.hspedu;
(1)package 关键字,表示打包。
(2)com.hspedu 表示包名。
2.包的原理
包的本质:实际上就是创建不同的文件夹来保存类文件。
3.快速入门
package com.use;
import com.xiaoming.Dog;
public class Test {
public static void main(String[] args) {
Dog dog = new Dog();//有引入import,可以不带包名
System.out.println(dog);//com.xiaoming.Dog@1540e19d
com.xiaoqiang.Dog dog1 = new com.xiaoqiang.Dog();//没有引入import,必须带包名;但不能同时引入同名的类
System.out.println(dog1);//com.xiaoqiang.Dog@677327b6
}
}
4.包的命名
(1)命名规则
只能包含数字、字母、下划线、小圆点,但不能用数字开头,不能是关键字或保留字
练习:
demo.class.exec1 //错误,class是关键字
demo.12a //错误,12a是数字开头
demo.ab12.oa //正确
(2)命名规范
一般是小写字母+小圆点
一般是 com.公司名.项目名.业务模块名
例如:
com.sina.crm.user //用户模块
com.sina.crm.order //订单模块
com.sina.crm.utils //工具类
5.常用的包
一个包下,包含很多的类,java中常用的包有:
java.lang.* //lang包是基本包,默认引用,不需要再引入
java.util.* //util包,系统提供的工具包,工具类,例如:Scanner
java.net.* //网络包,网络开发
java.awt.* //是做java的界面开发,GUI
6.包的使用细节
(1)如何引入包?
语法:import 包;
引入包的作用:使用该包下的类
import java.util.Scanner;//引入包java.util下的Scanner类 import java.util.*;//引入包java.util下的所有类
练习:使用系统提供Arrays完成数组排序。
package com.hspedu.pkg;
//建议:我们需要使用到哪个类,就导入哪个类,不建议使用*导入
//import java.util.Scanner;//引入包java.util下的Scanner类
//import java.util.*;//引入包java.util下的所有类
import java.util.Arrays;
public class Import01 {
public static void main(String[] args) {
//使用系统提供Arrays完成数组排序
int[] arr = {-1, 20, 2, 13, 3};
//传统方法:自己编写排序(冒泡)
//新方法:使用系统提供的相关的类
Arrays.sort(arr);
for(int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
}
}
(2)注意事项和使用细节
1)package的作用是声明当前类所在的包,需要放在类(文件)的最上面,一个类中最多只有一句package。
2)import指令位置放在package的下面,在类定义前面,可以有多句且没有顺序要求。
//package的作用是声明当前类所在的包,需要放在类(文件)的最上面
// 一个类中最多只有一句package。
package com.hspedu.pkg;
//import指令位置放在package的下面,在类定义前面
// 可以有多句且没有顺序要求。
import java.util.Arrays;
import java.util.Scanner;
//类定义
public class PkgDetail {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = {0, -1, 1};
Arrays.sort(arr);
}
}
三、访问修饰符
1.基本介绍
java提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围):
(1)公开级别:用public修饰,对外公开。
(2)受保护级别:用protected修饰,对子类和同一个包中的类公开。
(3)默认级别:没有修饰符号,向同一个包的类公开。
(4)私有级别:用private修饰,只有类本身可以访问,不对外公开。
同类,即本类。
2.注意事项
(1)修饰符可以用来修饰类以及类中的属性、成员方法。
(2)只有默认的和public才能修饰类。
(3)成员方法的访问规则和属性完全一样。
package com.hspedu.modifier;
public class A {
//成员变量(属性)
public int n1 = 100;
protected int n2 = 200;
int n3 = 300;
private int n4 = 400;
//成员方法
public void m1() {
//在同一个类下,可以访问public,protected,默认,private修饰的属性
System.out.println("n1=" + n1 + " n2=" + n2 + " n3=" + n3 + " n4=" + n4);
}
protected void m2() {}
void m3() {}
private void m4() {}
public void tiger() {
//在同一个类下,可以访问public,protected,默认,private修饰的成员方法
m1();
m2();
m3();
m4();
}
}
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.m1();
a.m2();
a.m3();
//a.m4(); //报错
}
}
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 {}
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.m1();
}
}