Idea中的常用缩写以及快捷键

常用缩写

main函数

// 输入main
public static void main(String[] args){}

sout打印函数

// 输入sout
System.out.println();

for循环简写fori

// 输入fori
for (int i = 0; i < ; i++) {}
// 在fori中嵌套输入fori会自动按照ijklm的顺序生成下去
for (int i = 0; i < ; i++) {for (int j = 0; j < ; j++) {}}

n.for循环n次

// 输入5.for
for (int i = 0; i < 5; i++) {}

遍历数组中的元素array.for

int[] array = new int[10];
// 输入array.for
for (int i : array) {}

代码后加.

.sout

我们使用sout缩写后得到的打印的函数虽然非常方便,但是还是不够方便,因为需要将内容输入后还要将光标移到行的末尾才能换行

image-20211119165548054

一种更好的方法打印的方式是content.sout方式,它会直接生成整一行代码而且光标在最后,写后面内容时直接换行即可,非常方便。

但这种方式在对变量打印时很方便,对想打印出想要自定义变量+字符串形式的内容也没有方便很多。

image-20211119165406425

    public static void main(String[] args) {int num = 1;// num.sout后智能生成System.out.println(num);}
new 对象.var (new对象并赋值给变量的快捷实现)

下面会将一种alt+enter的自动补全new对象并赋值给变量的实现方式,但是这里的.var更常用也更推荐(因为清晰,而且不用按组合键)

比如我们想要new一个长度为10的数组并复制给变量名为array的变量

image-20211119170331574

我们可以直接按照new 对象.var的形式:new int[10].var

image-20211119170520524

之后光标会自动停留在变量名的位置,我们可以直接修改成自己想要的变量名

改成array之后直接按enter,光标就会调到最后的末尾

image-20211119170601579

这样的好处一是不用写赋值语句的左半边,而且不会因为左右的类的类型不匹配而报错

快捷键

alt+enter

智能提示纠正错误(补全)

只要碰到有红色的波浪线,都可以按alt+enter进行智能补全

常用的时候包括:

new对象时

new一个对象时直接输入new name; 然后alt+enter智能补全

image-20211115001834931

BaseUseImpt impt = new BaseUseImpt();

其自动会将 new 类名()进行补全 类名 + 变量名 = new 类名();

自动实现接口的重写

image-20211115003336917

此时由于两个接口中定义的public abstract的抽象函数都没有实现,所以红色波浪线报错

alt+enter智能补全抽象函数的重写

image-20211115003509142

这样就顺利的补全完整了,非常方便

总结:遇事不决,遇到波浪线,直接alt+enter智能提示一波

alt+insert

类中插入构造函数

构造函数是和类同名的method

在定义类的构造函数时(等同于py中的__init__())使用alt+insert可以智能添加构造函数,按回车确认添加构造函数

image-20211114172527782

无参构造(点击无选择)

image-20211114172652286

注意如果没有定义任何构造函数那么java会自动生成一个空的构造函数

public class Student {String name;int id;public Student() {}
}

有参构造

image-20211114172915978

按住shift上下移动全选所有之前类定义的属性可以直接智能有参构造

public class Student {String name;int id;public Student() {}public Student(String name, int id) {this.name = name; // this等于py中的selfthis.id = id;}

注意:

如果定义了有参构造,那么java并不会自动生成一个空的构造函数,这时直接用无参new一个对象时就会报错。

所以如果想要保留无参和有参构造两种情况。那么必须同时显示定义无参构造

类中插入set()和get()(对于私有属性)

在对类进行封装时,我们都会将类的属性私有化private,那么这样在外部创建类后就无法

  1. 通过class.属性的方式访问类的属性
  2. 通过class.属性=value的方式更改类的属性

作为替代的,我们会定义public的两个set()和get()方法来对外提供接口访问以及更改类的属性

使用alt+insert选择Getter()Setter()Getter和Setter()智能插入set()和get()方法

image-20211114181358561

然后使用shift选择需要对外提供方法的属性就会自动生成set()和get()方法

image-20211114181833740

public class Student {private String name;private int id;public Student() {}public Student(String name, int id) {this.name = name;this.id = id;}// 使用`alt+insert`选择`Getter()`或`Setter()`或`Getter和Setter()`智能插入set()和get()方法public String getName() {return name;}public void setName(String name) {this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}
}

子类重写父类方法@Override

继承父类后使用alt+insert选择重写方法可以对父类的方法进行重定义

image-20211115094800117

此时选择要重写方法

image-20211115094831484

接着就会自动生成重写方法的模板

public class UniStudent extends Student{// 使用`alt+insert`选择**重写方法**选定指定方法进行智能重写@Overridepublic void identify() {super.identify(); //默认会加上执行父类方法这一句,如果不需要可删除}
}

ctrl + alt + t

自动套用模板(template)

当我们想对一句命令加上条件判断时,可以直接用ctrl + alt + t指令

它支持的模板有:

  1. 条件判断if,if else
  2. 循环 while/for
  3. 异常处理 try、catch、finally

示例一:

自动生成条件判断if else

image-20211115002754165

 System.out.println("AutoImplement"); //用`ctrl + alt + t`指令选择if/else后//自动生成的if/else判断模板
if () {System.out.println("AutoImplement");
} else {
}

示例二:

自动生成try/catch模板捕捉异常

image-20211115002716313

System.out.println(a/b); // /用`ctrl + alt + t`指令选择try/catch后//自动生成的try/catch异常捕捉模板
try {System.out.println(a/b);
} catch (Exception e) {e.printStackTrace(); //代表打印出错误
}

连续按两下shift

连续按两下shift是可以进行搜索,包括类和文件等

image-20211122164752862

Ctrl + p提示要填的参数信息

Ctrl + p(p是parameters的缩写)

image-20211123105955553

当不知道或忘记参数列表时,可以按Ctrl + p进行智能提示,非常方便。

Ctrl + Alt + F将局部变量变为实例变量

Ctrl + Alt + F,F是fileds的缩写,即表示变换作用域。

当在方法体中想将一个局部变量变成类中的实例变量时,按下Ctrl + Alt + F就会在类的开头添加上实例变量定义语句。

比如说我们想把下面方法体内的局部变量text快速变为一个类的实例变量,按下Ctrl + Alt + F后就会出现以下选项,我么可以选择修改text的内容,也可以不修改。

image-20211123180407973

然后敲击回车后

发现idea会自动将其添加为实例变量,并将前面的类名Text删除

image-20211123180625612

image-20211123180656919

这是非常简洁智能的

Ctrl + H查看类结构

有时候我们想看一个类的树结构(比如它的子类以及父类)

我们就可以选中想看的类,按下Ctrl + H指令,H代表hierarchical 层次的意思。

比如以下InputSplit是个抽象类,其无法直接实例化。此时我们就可以查看它的子类是否有可用的类。

image-20211124104826526

打开后发现其所有子类都是可以使用的,而自身是个抽象类所以在右侧的层次结构中被标为星号

注释快捷键

单行注释的快捷键是 ctrl + /

块注释的快捷键是选中内容后ctrl + shift + /

想完整打块注释是只需打/*回车后输入想要写的内容即可,后面的 */ 会进行自动补全

光标移动到行尾/行末

idea自带的快捷键alt + 左alt + 右是左右切换文件,我觉得没有什么必要,用鼠标点切换文件更好。

所以我将光标移到行首换成了alt + 左

光标移到行末换成了alt + 右

行操作

行操作配置的和我vscode一样

删除一整行的快捷键是ctrl + K

复制行ctrl + D

向上移动行 alt + up

向下移动行 alt + down

向上或向下选中多行shift + up/down

Published by

风君子

独自遨游何稽首 揭天掀地慰生平