java基础2

eclipse

常用快捷键

  • 输入“main”,然后按“Alt+/”,回车,快速生成程序入口。
  • 输入"/**",回车,快速形成文档作者、时间标注。
  • 补全代码的声明:alt + /
  • 快速修复: ctrl + 1
  • 批量导包:ctrl + shift + o
  • 使用单行注释:ctrl + /
  • 使用多行注释: ctrl + shift + /
  • 取消多行注释:ctrl + shift + \
  • 复制指定行的代码:ctrl + alt + down 或 ctrl + alt + up
  • 删除指定行的代码:ctrl + d
  • 上下移动代码:alt + up 或 alt + down
  • 切换到下一行代码空位:shift + enter
  • 切换到上一行代码空位:ctrl + shift + enter
  • 如何查看源码:ctrl + 选中指定的结构 或 ctrl + shift + t
  • 退回到前一个编辑的页面:alt + left
  • 进入到下一个编辑的页面(针对于上面那条来说的):alt + right
  • 光标选中指定的类,查看继承树结构:ctrl + t
  • 复制代码: ctrl + c
  • 撤销: ctrl + z
  • 反撤销: ctrl + y
  • 剪切:ctrl + x
  • 粘贴:ctrl + v
  • 保存: ctrl + s
  • 全选:ctrl + a
  • 格式化代码: ctrl + shift + f
  • 选中数行,整体往后移动:tab
  • 选中数行,整体往前移动:shift + tab
  • 在当前类中,显示类结构,并支持搜索指定的方法、属性等:ctrl + o
  • 批量修改指定的变量名、方法名、类名等:alt + shift + r
  • 选中的结构的大小写的切换:变成大写: ctrl + shift + x
  • 选中的结构的大小写的切换:变成小写:ctrl + shift + y
  • 调出生成getter/setter/构造器等结构: alt + shift + s
  • 显示当前选择资源(工程 or 文件)的属性:alt + enter
  • 快速查找:参照选中的Word快速定位到下一个 :ctrl + k
  • 关闭当前窗口:ctrl + w
  • 关闭所有的窗口:ctrl + shift + w
  • 查看指定的结构使用过的地方:ctrl + alt + g
  • 查找与替换:ctrl + f
  • 最大化当前的View:ctrl + m
  • 直接定位到当前行的首位:home
  • 直接定位到当前行的末位:end

数组

数组的概述

在这里插入图片描述
在这里插入图片描述

数组元素是整型的,元素的默认值是0
数组元素是浮点型的,元素的默认值是0.0
数组元素是char型的,元素的默认值是0或’\u0000’,而非’0’
数组元素是boolean的,元素的默认值是false
数组元素是引用数据类型的,元素的默认值是null
数组元素是数组的,元素的值是内存地址值

内存结构说明

在这里插入图片描述

在main方法中创建的变量都叫局部变量。

在这里插入图片描述

package com.dfq.apackage;

public class HelloWorld {
	public static void main(String[] args) {
		//静态初始化一维数组
		int[] intArray;
		intArray = new int[]{1000,1001,1002};
		//System.out.println(intArray[0]);
		//动态初始化一维数组
		String[] strArray = new String[5];
		strArray[0] = "dfq";
		//System.out.println(strArray[0]);
		//System.out.println(strArray.length);
		//静态初始化二维数组
		int[][] intArray2 = new int[][]{{1,2,3},{4,5},{6,7,8}};
		//动态初始化二维数组
		String[][] strArray2 = new String[3][4];
		String[][] strArray3 = new String[3][];
		strArray3[1] = new String[2];
		System.out.println(intArray2[0][1]);
	}
}

数组中涉及到的常见算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Arrays工具类的使用

在这里插入图片描述

对象

  • Java类及类的成员:属性、方法、构造器;代码块、内部类。
  • 面向对象的三大特征:封装性、继承性、多态性。
  • 其他关键字:this、super、static、final、abstract、interface、package、import。

面向过程与面向对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对象的创建和使用:内存分析

在这里插入图片描述
在类中声明的位置不同:

  • 属性:声明定义在类的一对{}内
  • 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量。

关于权限修饰符的不同:

  • 属性:可以在声明属性时,指明其权限,使用权限修饰符。
    • 常用的权限修饰符:private、public、缺省、protected。
  • 局部变量:不可以使用权限修饰符。

默认初始化值的情况:

  • 属性:类的属性,根据其类型,都有默认初始化值。
    • 整型(byte、short、int、long):0
    • 浮点型(float、double):0.0
    • 字符型(char):0 或 ‘\u0000’
    • 布尔型(boolean):false
    • 引用数据类型(类、数组、接口、):null
  • 局部变量:没有默认初始化值,我们在调用局部变量之前一定要显式赋值。特别的,形参在调用时我们赋值即可。

在内存中加载的位置:

  • 属性: 加载到堆空间中(非static)
  • 局部变量:加载到栈空间

在这里插入图片描述

return关键字后面不可以声明执行语句。

在这里插入图片描述

引用类型的变量,只可能存储两类值,null 或 地址值(含变量的类型)

匿名对象

/**
 * 匿名对象的使用
 * 1.理解:我们创建的对象,没有显式的赋给一个变量名。即为匿名对象
 * 2.特征:匿名对象只能调用一次。
 * 3.使用:如下
 * 
 */
public class InstanceTest {
	public static void main(String[] args) {
		Phone p = new Phone();
//		p = null;
		System.out.println(p);
		
		p.sendEmail();
		p.playGame();
		
//匿名对象
//		new Phone().sendEmail();
//		new Phone().playGame();
		
		new Phone().price = 1999;
		new Phone().showPrice();//0.0
		
//**********************************
		PhoneMall mall = new PhoneMall();
//		mall.show(p);
//匿名对象的使用
		mall.show(new Phone());
		
	}
}

class PhoneMall{
	public void show(Phone phone){
		phone.sendEmail();
		phone.playGame();
	}
	
}


class Phone{
	double price;//价格
	
	public void sendEmail(){
		System.out.println("发送邮件");
	}
	
	public void playGame(){
		System.out.println("玩游戏");
	}
	
	public void showPrice(){
		System.out.println("手机价格为:" + price);
	}
	
}

方法的重载

在这里插入图片描述

判断是否是重载:跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系!

在这里插入图片描述

不限制形参的数量,形参的数量可以任意个匹配。

在这里插入图片描述
在这里插入图片描述

使用方法对基础数据类型的处理不能对原数据直接生效,对对象的处理可以直接生效。
如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。
如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。

在这里插入图片描述

封装和隐藏

在这里插入图片描述

通过对class内的成员变量增加权限修饰符private对其进行封装,并对外提供新的方法,用户通过执行新的方法间接实现对成员变量值的修改。

在这里插入图片描述
在这里插入图片描述

构造器(或构造方法、constructor)的使用

在这里插入图片描述

3.一个类中定义的多个构造器,彼此构成重载。
4.一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器。
5.一个类中,至少会有一个构造器。
在这里插入图片描述
在这里插入图片描述

JavaBean

在这里插入图片描述
在这里插入图片描述

this的使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package

在这里插入图片描述
在这里插入图片描述

import

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

继承性

在这里插入图片描述

private 私有的属性和方法也会被继承。

在这里插入图片描述
在这里插入图片描述

如果我们没有显式的声明一个类的父类的话,则此类继承于java.lang.Object类。
所有的Java类(除java.lang.Object类之外)都直接或间接的继承于java.lang.Object类。

方法的重写

在这里插入图片描述

父类被重写的方法的返回值类型是void,则子类重写的方法的返回值类型只能是void。
在这里插入图片描述
在这里插入图片描述
子类重写的方法抛出的异常类型不大于父类被重新的方法抛出的异常了类型。
子类和父类中的同名同参数的方法要么都声明为非static的(考虑重写),要么都声明为static的(不是重写)。只有非static的才能考虑叫重写。

super

在这里插入图片描述
在这里插入图片描述

子类对象实例化的全过程

在这里插入图片描述

多态性

在这里插入图片描述

// 对象的多态性:父类的引用指向子类的对象。
Person p2 = new Man();
// 多态的使用:当调用子父类同名同参数的方法时,实际执行的是子类重写父类的方法。

在这里插入图片描述

对象的多态性只适用于方法,不适用于属性(编译和运行都看左边)。

在这里插入图片描述

方法的重载与重写

在这里插入图片描述

接口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代理模式

在这里插入图片描述
在这里插入图片描述

工厂模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

内部类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

局部内部类

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值