09 2021 档案
摘要:p70 方法重写 重写:需要有继承关系,子类重写父类的方法! 1.方法名必须相同 2.参数列表必须相同 3.修饰符:范围可以扩大: public>procted>default>private 4.抛出的异常:范围可以被缩小,但不能扩大;ClassNotFoundException --> Exce
阅读全文
摘要:p69 super详解 super注意点: 1. super调用父类的构造方法,必须在构造方法的第一个 2. super 必须只能出现在子类的方法或者构造方法中! 3. super和this不能同时调用构造方法! VS this 代表的对象不同: this: 本身调用这个对象 super:代表父类对
阅读全文
摘要:p68 继承 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。 extends的意思是“扩展”。子类是父类的扩展。 Java中类只有单继承,没有多继承! 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。 继承关系的两个类,一个为子类(派生类),一个为父类(基
阅读全文
摘要:p67 封装 该露的露,该藏的藏 我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。 封装(数据的隐藏) 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。 记住这句话就够了:属性私有
阅读全文
摘要:p66 简单小结与对象 1.类与对象 类是一个模板:对象是一个具体的实例 2.方法 定义、调用! 3.对应的引用 引用类型: 基本类型(8) 对象是通过引用来操作的:栈 >堆(地址) 4.属性:字段Filed 成员变量 默认初始化: 数字:0 0.0 char:u0000 boolean: fals
阅读全文
摘要:p65 创建对象内存分析 Pet类 package com.oop.Demo03; public class Pet { public String name; public int age; //默认有无参构造 public void shout(){ System.out.println("叫了
阅读全文
摘要:p64 构造器详解 package com.oop.Demo02; //Java class public class Person { //一个类即使什么都不写,它也会存在一个方法 //显示的定义构造器 String name; //实例化初始值 //1.使用new关键字,必须要有构造器,本质是在
阅读全文
摘要:p63 类与对象的关系 类是一种抽象的数据类型,它是对某一事物整体的描述/定义,但是并不能代表某一个具体的事物。 动物、植物、手机、电脑...... Person类、Pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为 对象是抽象概念的具体实例 张三就是人的一个具体实例
阅读全文
摘要:p62 回顾方法的调用 方法的调用 静态方法 非静态方法 形参和实参 值传递和引用传递 this关键字 package com.oop.demo01; public class Demo02 { public static void main(String[] args) { //实例化这个类 ne
阅读全文
摘要:p61 回顾方法及加深 方法的定义 修饰符 返回类型 break:跳出switch,结束循环和return的区别 方法名:注意规范就OK 见名知意 参数列表:(参数类型,参数名)... 异常抛出:疑问,后面讲解 方法的调用 静态方法 非静态方法 形参和实参 值传递和引用传递 this关键字 代码 p
阅读全文
摘要:p60 面向过程&面向对象 面向过程思想 步骤清晰简单,第一步做什么,第二步做什么...... 面对过程适合处理一些较为简单的问题 面向对象的思想 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独的思考。最后,才对某个分类的细节进行面向过程的思索。 面向对象适合处
阅读全文
摘要:p59 稀疏数组 需求:编写五子棋游戏中,有存盘退出和续上盘的功能。 分析问题:因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据。 解决:稀疏数组 稀疏数组介绍 当一个数组中大部分元素为0,或者 为同一值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组阿处理方式是: 记录数组一共有几
阅读全文
摘要:p58 冒泡排序 冒泡排序无疑是最出名的排序算法之一,总共有八大排序! 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人人尽皆知。 我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为O(n2)。 思考:如何优化? 代码 package com.kuang.array;
阅读全文
摘要:p57 Arrays类 数组的工具类java.util.Arrays 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。 查看JDK帮助文档 Arrays类中阿方法都是static修饰的静态方法,在使用的时候可以直接
阅读全文
摘要:p56 多维数组 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。 二维数组 int a[][] = new int[2][5]; 解析:以上二维数组a可以看成一个两行五列的数组。 思考:多维数组的使用?num[1][0] 代码 package com
阅读全文
摘要:p55 数组使用 普通的For循环 For-Each循环 数组作方法入参 数组作返回值 代码 package com.kuang.array; public class ArrayDemo04 { public static void main(String[] args) { int[] arra
阅读全文
摘要:p54 数组的四个基本特点 其长度是确定的。数组一旦被创建,他的大小就是不可以改变的。 其元素必须是相同类型,不允许出现混合类型。 数组中的元素可以是任何数据类型,包括基本类型和引用类型。 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中
阅读全文
摘要:p53 内存分析 Java内存分析: 写代码画图分析内存! 数组三种初始化 静态初始化 int[] a = {1,2,3}; Man[] mans = {new Man(1,1),new Man(2,2)} 动态初始化 int[] a = new int[2]; a[0] = 1; a[1] = 2
阅读全文
摘要:p52 数组声明创建 首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法: dataType[] arrayRefVar;//首选的方法 或 dataType arrayRefVar[];//效果相同,但不是首选方法 Java语言使用new操作符来创建数组,语法如下: dataTy
阅读全文
摘要:p51 数组的定义 数组是相同类型数据的有序集合。 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。
阅读全文
摘要:p50 递归 A方法调用B方法,我们很容易理解! 递归就是:A方法调用A方法!就是自己调用自己 利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可以描述出解题过程所需要的多次重复计算,大大减少了程序的代
阅读全文
摘要:p49 可变参数 JDK1.5开始,Java支持传递同类型的可变参数给一个方法。 在方法的生命中,在指定参数类型后加一个省略号(...)。 一个方法中只能指定一个可变参数,它必须是方法阿最后一个参数。任何普通的参数必须在它之前声明。 package com.kuang.method; public
阅读全文
摘要:p48 命令行传参 有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。 public class CommmandLine{ public static void mian(String args[]){ for(int i=0;i<args.length;i+
阅读全文
摘要:p47 方法的重载 重载就是在一个类中,有相同的函数名称,但形参不同的函数。 方法的重载规则: 方法名称必须相同。 参数列表必须相同(个人不同、或类型不同、参数排列不同等)。 方法的返回类型可以形同也可以不相同。 仅仅返回类型不同不足以成为方法的重载。 实现理论: 方法名称相同时,编译器会根据调用方
阅读全文
摘要:p46 方法的定义和调用 方法的定义 Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法: 方法包含一个方法头和一个方法体。下面是一个方法的所有部分: 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。 返回值类型:
阅读全文
摘要:p45 什么是方法 System.out.println(),那么它是什么呢? Java方法是语句的集合,它们在一起执行一个功能。 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们
阅读全文
摘要:p44 打印三角形及Debug package com.kuang.struct; public class TestDemo { public static void main(String[] args) { //打印三角形 5行 for (int i = 1; i <= 5; i++) { f
阅读全文
摘要:p43 break continue break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用) continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进
阅读全文
摘要:p42 增强for循环 这里我们先只是见一面,做个了解,之后数组我们重点使用。 Java5引入了一种主要用于数组或集合的增强型for循环。 Java增强for循环语法格式如下: for(声明语句:表达式){ //代码语句 } 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域
阅读全文
摘要:p41 打印九九乘法表 1.我们先打印第一列,这个大家应该都会 2.我们把固定的i再用一个循环包起来 3.去掉重复项。i ⇐ j 4.调整样式 package com.kuang.struct; public class ForDemo04 { public static void main(Str
阅读全文
摘要:p40 for循环 虽然所有循环结构都可以用while或者do...while表示,但Java提供了另一种语句——for循环,使一些循环结构变得更加简单。 for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。 for循环执行的次数是在执行前就确定的。语法格式如下: for(初始化;布
阅读全文
摘要:p39 do...while循环 对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。 do...while循环和while循环相似,不同的是,do...while循环至少会执行一次。 do{ //代码语句 }while(布尔表达式) while和
阅读全文
摘要:p38 循环结构 while循环 do...while循环 for循环 在Java5中引入了一种主要用于数组的增强型for循环。 while循环 while是最基本的循环,他的结构为: while(布尔表达式){ //循环内容 } 只要布尔表达式为true,循环就会一直执行下去。 我们大多数情况是会
阅读全文
摘要:p37 switch多选择结构 多选择结构还有一个实现方式就是switch case语句。 switch case语句判断一个变量与一系列值中某个值是否相等,每个值成为一个分支。 switch语句中的变量类型可以是: byte、short、int或者char。 从Java SE 7开始 switch
阅读全文
摘要:p36 if选择结构 if单选择结构 if双选择结构 if多选择结构 嵌套的if结构 switch多选择结构 1. if单选择结构 我们很多时候需要去判断一个东西是否可行,然后我们采取执行,这样一个过程在程序中用if语句来表示 语法 if(布尔表达式){ //如果布尔表达式为true将执行的语句 }
阅读全文
摘要:p35 顺序结构 Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。 顺序结构是最简单的算法结构。 语句与语句之间,框与框之间是从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。 代码 package com.kuang.
阅读全文
摘要:p34 Scanner的进阶 判断输入的数是否是整数或者小数 hasNextInt hasNextFloat 代码 package com.kuang.scanner; import java.util.Scanner; public class Demo04 { public static voi
阅读全文
摘要:p33 用户交互Scanner Scanner对象 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是java5的新特征,我们可以通过Scanner类来获取用户的输入。 基本语法: Scanner
阅读全文

浙公网安备 33010602011771号