JAVA Day3 总结

1、方法重载(与返回值无关 ,与参数有关)

* 在同一个类中,方法名相同,参数列表不同。 *******与返回值类型无关。
	
* 参数列表不同:
		* A:参数个数不同
		* B:参数类型不同
		* C:参数的顺序不同 , 但两个参数类型不一样 【(double u, int a)】 (算重载,但是在开发中不用)

2、一维数组

所谓的静态和动态是相对于程序运行是而言的:
静态是在程序编译时就初始化好了的, int [] arr = {1,23,3}
动态初始化是在程序运行是才动态分配内存空间 int [] arr = new int [4]

(1)、什么是数组的初始化

* 就是为数组开辟连续的内存空间,并为每个数组元素赋予值 

(2)、如何对数组进行初始化

* a:动态初始化 只指定长度,由系统给出初始化值
	* int[] arr = new int[5]; 	
* b:静态初始化 给出初始化值,由系统决定长度	

(3)、动态初始化的格式:

* 数据类型[] 数组名 = new 数据类型[数组长度];

(4)、动态初始化时给出的默认值:

     整数类型:byte,short,int,long默认初始化值都是0
	浮点类型:float,double默认初始化值都是0.0
	布尔类型:boolean默认初始化值false
	字符类型:char默认初始化值'\u0000'
	char在内存中占的两个字节,是16个二进制位
	\u0000,每一个0其实代表的是16进制的0,那么四个0就是代表16个二进制位
 int [] a = new int[5];
        for (int i: a
             ) {
            System.out.println(i);
        }
0
0
0
0
0

(5)、常见2种数组异常:

* a:ArrayIndexOutOfBoundsException:数组索引越界异常
	* 原因:你访问了不存在的索引。
		* int[] arr = new int[5];						//0x0011
	* System.out.println(arr[-1]);				//当访问数组中不存在的索引,会出现索引越界异常
* b:NullPointerException:空指针异常
	* 原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。
		
		* int[] arr = {1,2,3};
		* arr = null;
		* System.out.println(arr[0]);

(6)、二维数组的定义:

  • 1:数据类型 数组名[][] = new 数据类型[m][n];
  • 2:数据类型[] 数组名[] = new 数据类型[m][n];
  • 3:int[] x,y[]; x是一维数组,y是二维数组
  • 4:int [] [] arr ; arr.length===指的是二维数组中一维数组的个数

(7)、成员变量和局部变量的区别

  • A:在类中的位置不同

    • 成员变量:在类中方法外
    • 局部变量:在方法定义中或者方法声明上
  • B:在内存中的位置不同

    • 成员变量:在堆内存(成员变量属于对象,对象进堆内存)
    • 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
  • C:生命周期不同

    • 成员变量:随着对象的创建而存在,随着对象的消失而消失
    • 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
  • D:初始化值不同

    • 成员变量:有默认初始化值
    • 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
  • 注意事项:

    • 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
    • 基本数据类型变量包括哪些:byte,short,int,long,float,double,boolean,char
    • 引用数据类型变量包括哪些:数组,类,接口,枚举

(8)、匿名对象

  • A:什么是匿名对象
    • 没有名字的对象
  • B:匿名对象应用场景
    • a:调用方法,仅仅只调用一次的时候。
      • 那么,这种匿名调用有什么好处吗?
        • 节省代码
      • 注意:调用多次的时候,不适合。匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。
//可作为参数进行传递,减少一步代码
method1(new Student());
method1(new Student());
public void method1(Student stu){
 	stu.setnum(111);
 	stu.print();
}

(9)、封装的概述

  • A:封装概述

    • 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
  • B:封装好处

    • 隐藏实现细节,提供公共的访问方式
    • 提高了代码的复用性
    • 提高安全性。
  • C:封装原则

    • 将不需要对外提供的内容都隐藏起来。
    • 把属性隐藏,提供公共方法对其访问。

    可简单理解为:
    ------------只要是不能直接访问 就是封装

(10)、get·set 方法存在的意义

  • get set 方法在关键的时候可以对数据进行一定的处理和拦截(感觉不太明显)

(11)、this关键字的概述和应用

  • A:this关键字特点
    • 代表当前对象的引用
  • B:案例演示
    • this的应用场景
    • 用来区分成员变量和局部变量重名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值