05 2022 档案
摘要:main()方法的使用说明: main()方法作为程序的入口 2.main()方法也是一个普通的静态方法 3.main()方法可以作为我们与控制台交互的方式。(之前:使用Scanner) 如何将控制台获取的数据传给参数:String[] args? 运行时:java 类名 "Tom" "Jerry"
阅读全文
摘要:1.设计模式的说明: 1.1理解: 设计模式:是在大量的实践中总结和理论化之后,优化的代码结构、编程风格、以及解决问题的思考方式。 1.2 常用设计模式 23种经典的设计模式 GOF 创建型模式,共5种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构模型,共7种:适配器模式、装饰
阅读全文
摘要:static:静态的 1.可以用来修饰的结构:主要用来修饰类的内部结构 属性、方法、代码块、内部类 2.static修饰属性:静态变量(或类变量) 2.1 属性,是否使用static修饰,又分为:静态属性 vs 非静态属性(实例变量) 实例变量:我们创建类的多个对象,每个对象都有独立的拥有一套类中的
阅读全文
摘要:1.为什么要有包装类(或封装类) 为了使基本数据类型的变量具有类的特征,引入包装类。 2.基本数据类型与对应的包装类: 3.需要掌握的类型间的转换:(基本数据类型、包装类、String) 简易版: 基本数据类型 ← > 包装类:JDK 5.0 新特性:自动装箱 与自动拆箱 基本数据类型、包装类 >
阅读全文
摘要:Java中JUnit单元测试 步骤: 1)在当前工程 - 右键选择:build path - add libraries - JUnit 4 - 下一步 2)创建Java类,进行单元测试: 创建的Java类要求:① 此类是public的 ② 此类提供公共的无参的构造器 3)此类中声明的单元测试方法:
阅读全文
摘要:1.java.lang.Object类的使用: 1.1 java.lang.Object类的根父类 1.2 如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类 1.3 Object类中的功能(属性、方法)就具有通用性。 属性:无 方法:equals(
阅读全文
摘要:1. 多态性的理解: 可以理解为一种事物的多种形态 2. 为何使用多态性: 对象的多态性:父类的引用指向子类的对象。或(子类的对象赋值给父类的引用) 【举例】 Person p = new Person(); Object obj = new Date(); 3. 多态性的使用:虚拟方法调用 有了对
阅读全文
摘要:理解: 1. 从结果上看: 子类继承父类以后,就获取了父类中声明的属性和方法。 创建子类的对象,在堆空间中,就会加载所有父类中声明的属性。 2. 从过程上看: 当我们通过子类的构造器创建对象时,我们一定会直接或间接的调用其父类的构造器,进而调用其父类的父类构造器,...直到调用了java.lang.
阅读全文
摘要:1. super关键字可以理解为: 父类的 2. 可以用来调用的结构: 属性、方法、构造器 3. super调用属性、方法: 3.1 我们可以在子类的方法或构造器中。通过使用"super.属性"或"super.方法"的方式,显式的调用父类中声明的属性和方法。但是,通常情况下,我们习惯省略"super
阅读全文
摘要:1.什么是方法的重写(override 或 overwrite) 子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作 2.应用: 重写以后,当创建子类对象以后,通过类的对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法。 3.举例: 【代码】 class Circle{
阅读全文
摘要:1.为什么要有类的继承性?(继承性的好处) 继承性的出现,减少了代码的冗余,提供了代码的复用性 继承性的出现,更加利于功能的拓展 继承性的出现,让类与类之间产生了联系,为多态提供了前提。 图示: 2.继承性的格式: class A extends B{} A: 子类、派生类、subclass B:
阅读全文
摘要:1.package的使用: 1.1 使用说明: 1.为了更好的实现项目中类的管理,提供了报的概念 2.使用package声明类和接口所属的包,声明在源文件的首行。 3.包,属于标识符,遵循标识符的命名规则、规范(xxxyyyzzz)、“见名之意” 4.每"."一次,就代表一层文件目录。 1.2举例:
阅读全文
摘要:1.可以调用的结构:属性、方法、构造器 2.this调用属性、方法: this理解为:当前对象 或 当前正在创建对象 2.1 在类的方法中,我们可以使用“this.属性” 或“this.方法”的方式,调用当前对象属性或方法。 但是,通常情况下,我们可以省略“this.”。 特殊情况下,如果方法的形参
阅读全文
摘要:1.构造器(或构造方法):Constructor 构造器的作用: 1.创建对象 2.初始化类的属性 2.使用说明: 1.如果没有显示的定义类的构造器的话,则系统默认提供一个空参的构造器。 2.构造器的格式:权限修饰符 类名 (形参列表){} 3.一个类中可以定义多个构造器,彼此构成重载。 4.一旦我
阅读全文
摘要:面向对象的特征一:封装与隐藏 1.为什么要引入封装性? 我们程序设计追求“高内聚,低耦合”。 高内聚:类的内部数据操作细节自己完成,不允许外部干涉。 低耦合:仅对外部暴露少量的方法用于使用。 隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提供系统的可扩展性、可维护性。 通俗的说,把该
阅读全文
摘要:1.定义: 递归方法:一个方法体内调用它自身 2.如何理解递归方法? 方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无循环控制。 递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似于死循环。 3.举例: //例题1:计算1-100之间的所有的自然数和 int sum =
阅读全文
摘要:1.针对于方法内变量的赋值举例: System.out.println("*************基本数据类型******************"); int m = 10; int n = m; n = 20; System.out.println("m = " + m + ",n = " +
阅读全文
摘要:可变个数的形参的方法 1.使用说明: jdk 5.0新增的内容 2.具体使用: 2.1 可变个数形参的格式:数据类型 ...变量名 2.2 当调用可变个数形参方法时,传入的形参个数可以是0个,1个,2个...或多个 2.3 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载 2.4 可
阅读全文
摘要:1.方法的重载的概念: 定义:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。 2.构成重载的举例: //举例一: Arrays类中的重载的sort()/binarySearch() //举例二:如下4中情况,都是类的方法重载 public void getSum(
阅读全文
摘要:return关键字: return关键字的使用: 适用范围:使用在方法体中 作用: 》结束方法 》针对于有返回值类型的方法,使用“return 数据” 方法返回索要的数据。 3.注意点: return关键字后面不可以声明执行语句。
阅读全文
摘要:类的设计中,两个重要结构之二:方法 方法:描述类应该有的功能。 比如:Math类:sqrt()\ random()\... Scanner类:nextXxx()... Arrays类:sort()\binarySearch()\toString()\equals()\... 1.举例: public
阅读全文
摘要:类的设计中,两个重要结构之一:属性 对比: 属性 vs 局部变量 1.相同点: 1.1 定义变量的格式:数据类型 变量名 = 变量值 1.2 先声明,后使用 1.3 变量都有其对应的作用域 2.不同点: 2.1 在类中声明的位置不同 》 属性:直接定义在类的一对{}内 》 局部变量:声明在方法内、方
阅读全文
摘要:JVM内存结构: 编译完源程序以后,生成一个或多个字节码文件。 我们使用JVM中的,类的加载器和解释器对生成的字节码文件进行解释运行。意味着,需要将字节码文件对应的类加载到内存中,涉及到内存解析。 《JVM规范》 虚拟机栈:即为平时提到的栈结构。我们将局部变量存储在栈结构中。 堆:我们将new出来的
阅读全文
摘要:1.面向对象学习的三条主线: Java类及类的成员:属性、方法、构造器、代码块、内部类 面向对象的三大特征:封装性、继承性、多态性(抽象性) 其它关键字:this、super、static、final、abstract、interface、package、import等 “大处着眼,小处着手” 2.
阅读全文
摘要:1.数组角标越界异常:ArrayIndexOutOfBoundsException int[] arr = new int[]{1,2,3,4,5}; for(int i = 0;i < arr.length;i++){ System.out.println(arr[i]); } //System.
阅读全文
摘要:1.理解: 定义在java.util的包下 Arrays:提供了很多操作数组的方法 2.使用: //1.boolean equals(int[] a, int[] b):判断两个数组是否相等 int[] arr1 = new int[] {1,2,3,4}; int[] arr2 = new int
阅读全文
摘要:1.数组的创建与元素赋值: 杨辉三角(二维数组)、回形数(二维数组)、6个数,1-30之间随机生成且不重复 2.针对数值型的数组: 最大值、最小值、总和、平均数等 3.数组的赋值与复制: int[] array1, array2; array1 = new int[]{1,2,3,4}; 3.1赋值
阅读全文
摘要:1. 如何理解二维数组? 数组属于引用数据类型 数组的元素也可以是引用数据类类型 一个一维数组A的元素如果还是一个一维数组类型的,则,此数组A称为二维数组。 2.二维数组的声明与初始化 正确方式: int[] arr = new int[] {1,2,3};//一维数组 //静态初始化: 标注写法
阅读全文
摘要:一维数组: 1.一维数组的声明和初始化 正确方式: int num; // 声明 num = 10;//初始化 int id = 1001;//声明 + 初始化 int[] ids;//声明 //1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行 ids = new int[] {1001
阅读全文
摘要:一、数组的概述 1.数组的理解: 数组(Array),是多个相同类型数据按照一定的顺序排列的集合,并使用一个名字命名, 并通过编号的方式对这些数据进行统一管理。 2.数组相关的概念 数组名 元素 角标、下标、索引 数组的长度:元素的个数 3.数组的特点: 1)数组是有序排列的 2)数组属于引用数据类
阅读全文