Java笔记整理二(idea快捷键,代码规范,方法详细解释,数组,类与对象、封装、构造方法)

本文详细介绍了Java编程中的代码规范,包括包名、类名、方法命名规则,以及IDEA的配置建议,如字体设置、快捷键和代码格式化。此外,还涵盖了数组操作、类与对象、封装、构造方法、JavaBean等核心概念的实战指导。
摘要由CSDN通过智能技术生成

Java笔记整理二

1、idea使用与代码规范:

1.1项目层次:

Project -项目 名字小写

Moudule-模块 名字小写

Package -包 cn.li.javabasic

Class -类文件 所有单词首字母大写。

-方法,函数 首词首字母小写,其他字母大写

-变量 名字小写


1.2.代码规范

1.2.1包名:仅使用英语小写,数字及数字句点 并使用倒装例。
1.2.2类名: 首字母大写,用不同的后缀表达额外的意思。

 SupplierService

后缀名 意义 举例

**Service** 表明这个类是个服务类,里面包含了给其他类提同业务服务的方法PaymentOrderService

**Impl** 这个类是一个实现类,而不是接口PaymentOrderServiceImpl

**Inter**这个类是一个接口LifeCycleInter

**Dao**这个类封装了数据访问方法PaymentOrderDao

**Action**直接处理页面请求,管理页面逻辑了类UpdateOrderListAction

**Listener**响应某种事件的类PaymentSuccessListener

**Event**这个类代表了某种事件PaymentSuccessEvent

**Servlet**一个ServletPaymentCallbackServlet

**Factory**生成某种对象工厂的类PaymentOrderFactory

**Adapter**用来连接某种以前不被支持的对象的类DatabaseLogAdapter

**Job**某种按时间运行的任务PaymentOrderCancelJob

**Wrapper**这是一个包装类,为了给某个类提供没有的能力SelectableOrderListWrapper

**Bean**这是一个POJOMenuStateBean

1.2.3方法名

首字母小写,动词在前如 addOrder()
动词前缀往往表达特定的含义,如下表:

前缀名意义举例

create创建createOrder()

delete删除deleteOrder()

add创建,暗示新创建的对象属于某个集合addPaidOrder()

remove删除removeOrder()

init或则initialize初始化,暗示会做些诸如获取资源等特殊动作initializeObjectPool

destroy销毁,暗示会做些诸如释放资源的特殊动作destroyObjectPool

open打开openConnection()

close关闭closeConnection()

read读取readUserName()

write写入writeUserName()

get获得getName()

set设置setName()

prepare准备prepareOrderList()

copy复制copyCustomerList()

modity修改modifyActualTotalAmount()

calculate数值计算calculateCommission()

do执行某个过程或流程doOrderCancelJob()

dispatch判断程序流程转向dispatchUserRequest()

start开始startOrderProcessing()

stop结束stopOrderProcessing()

send发送某个消息或事件sendOrderPaidMessage()

receive接受消息或时间receiveOrderPaidMessgae()

respond响应用户动作responseOrderListItemClicked()

find查找对象findNewSupplier()

update更新对象updateCommission()

1.2.4变量 :第一个单词是全部小写,后面的单词首字母大写。
 myStudentCoun
1.2.5静态常量:全大写用下划线分割,如

public static find String ORDER_PAID_EVENT = “ORDER_PAID_EVENT”;

1.2.6枚举:全大写,用下划线分割,如

public enum Events {
ORDER_PAID,
ORDER_CREATED

}

1.2.7二元三元运算符两边用一个空格隔开
1.2.8逗号语句后如不换行,紧跟一个空格

2、idea推荐配置

2.1idea推荐配置

1.Settings --Editor–Font 设置字体及大小
2. Settings --Keymap–小齿轮–Copmletion–Basic
推荐使用alt+/ 提示输入;

2.2idea快捷键

快捷键 功能

Alt+Enter 导入包,自动修正代码

Ctrl+Y 删除光标所在行

Ctrl+D 复制光标所在行的内容,插入光标位置下面

Ctrl+Alt+L 格式化代码

Ctrl+/ 单行注释

Ctrl+Shift+/ 选中代码注释,多行注释,再按取消注释

Alt+Ins 自动生成代码,toString,get,set等方法

Alt+Shift+上下箭头 移动当前代码行

3.方法

3.1定义方法的格式详解

修饰符 返回值类型 方法名(参数列表){
//代码省略...
return 结果;
}
  • 修饰符: public static 固定写法
  • 返回值类型: 表示方法运行的结果的数据类型,方法执行后将结果返回到调用者
  • 参数列表:方法在运算过程中的未知数据,调用者调用方法时传递
  • return:将方法执行后的结果带给调用者,方法执行到 return ,整体方法运行结束
  • 明确返回值类型:
  • 明确参数列表:

3.2定义方法的注意事项

  • 定义位置,类中方法外面。
  • 返回值类型,必须要和 return 语句返回的类型相同,否则编译失败 。
  • 不能在 return 后面写代码, return 意味着方法结束,所有后面的代码永远不会执行,属于无效代码。

3.3 调用方法的三种形式

  • 直接调用:直接写方法名调用
 public static void main(String[] args) {
print();
}
public static void print() {
System.out.println("方法被调用");
}
  • 赋值调用:调用方法,在方法前面定义变量,接收方法返回值
public static void main(String[] args) {
int sum = getSum(5,6);
System.out.println(sum);
}
public static int getSum(int a,int b) {
return a + b;
}
  • 输出语句调用:

    • 在输出语句中调用方法, System.out.println(方法名()) 。
public static void main(String[] args) {
System.out.println(getSum(5,6));
}
public static int getSum(int a,int b) {
return a + b;
}
  • 不能用输出语句调用 void 类型的方法。因为方法执行后没有结果,也就打印不出任何内容。
 public static void main(String[] args) {
System.out.println(printHello());// 错误,不能输出语句调用void类型方法
}
public static void printHello() {
System.out.println("Hello");
}

3.4方法重载

  • 方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。
  • 参数列表:个数不同,数据类型不同,顺序不同。
  • 重载方法调用:JVM通过方法的参数列表,调用不同的方法。

4.数组

4.1 数组的定义

数组概念: 数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致

方式一

格式:

数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];

int[] arr = new int[3];

数组定义格式详解:

  • 数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
  • [ ] : 表示数组。
  • 数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。
  • new:关键字,创建数组使用的关键字。
  • 数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
  • [长度]:数组的长度,表示数组容器中可以存储多少个元素。
  • 注意:数组有定长特性,长度一旦指定,不可更改。
方式二
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};

int[] arr = new int[]{1,2,3,4,5};
方式三
数据类型[] 数组名 = {元素1,元素2,元素3...};

int[] arr = {1,2,3,4,5};

4.2 数组的访问

  • 索引: 每一个存储到数组的元素,都会自动的拥有一个编号,从0开始,这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。
  • 数组的长度属性: 每个数组都具有长度,而且是固定的,Java中赋予了数组的一个属性,可以获取到数组的长度,语句为: 数组名.length ,属性length的执行结果是数组的长度,int类型结果。由次可以推断出,数组的最大索引值为 数组名.length-1 。
  • 索引访问数组中的元素:
    • 数组名[索引]=数值,为数组中的元素赋值
    • 变量=数组名[索引],获取出数组中的元素
public static void main(String[] args) {
int[] arr = new int[3];
System.out.println(arr);//[I@5f150435
}

以上方法执行,输出的结果是[I@5f150435,这个是什么呢?是数组在内存中的地址。new出来的内容,都是在堆内存中存储的,而方法中的变量arr保存的是数组的地址。输出arr[0],就会输出arr保存的内存地址中数组中0索引上的元素

4.3 数组的常见操作

  1. 数组越界异常
public static void main(String[] args) {
int[] arr = {1,2,3};
System.out.println(arr[3]);
}
  1. 数组空指针异常
public static void main(String[] args) {
int[] arr = {1,2,3};
arr = null;
System.out.println(arr[0]);
  1. 数组遍历【重点】
  • 数组遍历: 就是将数组中的每个元素分别获取出来,就是遍历。
  1. 数组获取最大值元素
 public static void main(String[] args) {
int[] arr = { 5, 15, 2000, 10000, 100, 4000 };
//定义变量,保存数组中0索引的元素
int max = arr[0];
//遍历数组,取出每个元素
for (int i = 0; i < arr.length; i++) {
//遍历到的元素和变量max比较
//如果数组元素大于max
if (arr[i] > max) {
//max记录住大值
max = arr[i];
}
}
System.out.println("数组最大值是: " + max);
}
  1. 数组反转
  • 数组的反转: 数组中的元素颠倒顺序,例如原始数组为1,2,3,4,5,反转后的数组为5,4,3,2,1
  • 实现思想:数组最远端的元素互换位置。
    • 实现反转,就需要将数组最远端元素位置交换
    • 定义两个变量,保存数组的最小索引和最大索引
    • 两个索引上的元素交换位置
    • 最小索引++,最大索引–,再次交换位置
    • 最小索引超过了最大索引,数组反转操作结束
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
/*
循环中定义变量min=0最小索引
max=arr.length‐1最大索引
min++,max‐‐
*/
for (int min = 0, max = arr.length ‐ 1; min <= max; min++, max‐‐) {
//利用第三方变量完成数组中的元素交换
int temp = arr[min];
arr[min] = arr[max];
arr[max] = temp;
}
// 反转后,遍历数组
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}

4.4 数组作为方法参数和返回值

4.4.1数组作为方法参数
  • 数组作为方法参数传递,传递的参数是数组内存的地址。
public static void main(String[] args) {
int[] arr = { 1, 3, 5, 7, 9 };
//调用方法,传递数组
printArray(arr);
}
/*
创建方法,方法接收数组类型的参数
进行数组的遍历
*/
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
4.4.2 数组作为方法返回值
  • 数组作为方法的返回值,返回的是数组的内存地址
public static void main(String[] args) {
//调用方法,接收数组的返回值
//接收到的是数组的内存地址
int[] arr = getArray();
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
/*创建方法,返回值是数组类型
return返回数组的地址
*/
public static int[] getArray() {
int[] arr = { 1, 3, 5, 7, 9 };
//返回数组的地址,返回到调用者
return arr;
}

方法的参数为基本类型时,传递的是数据值. 方法的参数为引用类型时,传递的是地址值.

5.类与对象

  • 类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。
  • 对象:是一类事物的具体体现。对象是类的一个实例,必然具备该类事物的属性和行为
  • 类与对象的关系
    • 类是对一类事物的描述,是抽象的。
    • 对象是一类事物的实例,是具体的。
    • 类是对象的模板,对象是类的实体。

5.1类的定义

public class ClassName {
//成员变量
//成员方法
}
  • 定义类:就是定义类的成员,包括成员变量和成员方法。
  • 成员变量:和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外。
  • 成员方法:和以前定义方法几乎是一样的。

5.2对象的使用

创建对象:

类名 对象名 = new 类名();

使用对象访问类中的成员:

对象名.成员变量;
对象名.成员方法()

成员变量的默认值

数据类型默认值
基本类型整数(byte,short,int,long)0
浮点数(float,double)0.0
字符(char)‘\u0000’
布尔(boolean)false
引用类型数组,类,接口null

5.3成员变量和局部变量区别

变量类型

  • 在类中的位置不同 重点
    • 成员变量:类中,方法外
    • 局部变量:方法中或者方法声明上(形式参数)
  • 作用范围不一样 重点
    • 成员变量:类中
    • 局部变量:方法中
  • 初始化值的不同 重点
    • 成员变量:有默认值
    • 局部变量:没有默认值。必须先定义,赋值,最后使用
  • 在内存中的位置不同 了解
    • 成员变量:堆内存
    • 局部变量:栈内存
  • 生命周期不同 了解
    • 成员变量:随着对象的创建而存在,随着对象的消失而消失
    • 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

6.封装

将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。

步骤:

  1. 使用 private 关键字来修饰成员变量。
  2. 对需要访问的成员变量,提供对应的一对 getXxx 方法 、 setXxx 方法。

6.1private关键字

  1. private是一个权限修饰符,代表最小权限。
  2. 可以修饰成员变量和成员方法。
  3. 被private修饰后的成员变量和成员方法,只在本类中才能访问。

6.2this关键字

this代表所在类的当前对象的引用(地址值),即对象自己的引用。

记住 :方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。

public class Student {
private String name;
private int age;
public void setName(String name) {
//name = name;
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
//age = age;
this.age = age;
}
public int getAge() {
return age;}}

6.3构造方法

当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值

修饰符 构造方法名(参数列表){
// 方法体
}

public class Student {
private String name;
private int age;
// 无参数构造方法
public Student() {}
// 有参数构造方法
public Student(String name,int age) {
this.name = name;
this.age = age;
}
}

  1. 如果你不提供构造方法,系统会给出无参数构造方法。
  2. 如果你提供了构造方法,系统将不再提供无参数构造方法。
  3. 构造方法是可以重载的,既可以定义参数,也可以不定义参数。

6.4标准代码——JavaBean

JavaBean 是 Java语言编写类的一种标准规范。符合 JavaBean 的类,要求类必须是具体的和公共的,并且具有无参数的构造方法,提供用来操作成员变量的 set 和 get 方法。

public class Student {
//成员变量
private String name;
private int age;
//构造方法
public Student() {}
public Student(String name,int age) {
this.name = name;
this.age = age;
}
//成员方法
publicvoid setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
publicvoid setAge(int age) {
this.age = age;
}
publicint getAge() {
return age;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值