04 2022 档案
摘要:多态 引入 先看一个问题 问题描述 : com.edu.poly_ : Poly01.java (polymorphic: 多态的) 请编写一个程序 ,Master类 中有一个feed(喂食)方法 ,可以完成 主人给动物喂食物的信息 分析 :首先要有三个类 ,分别是食物类 主人类 动物类 ,其次 食
阅读全文
摘要:面向对象 - 继承 为什么需要继承 一个小问题 , 还是看个程序com.edu.extend_ 包: Extends01.java , 提出代码复用的问题. 我们编写了两个类,一个是 Pupil 类(小学生),一个是 Graduate(大学毕业生) 问题: 两个类的属性和方法有很多是相同的,怎么办
阅读全文
摘要:super 关键字 基本介绍 super 代表父类的引用,用于访问父类的属性、方法、构造器 基本语法 //com.edu.super_ 下 Super.java 访问父类的属性,但不能访问父类的private属性[案例] super.属性名; 访问父类的方法,不能访问父类的private方法 sup
阅读全文
摘要:方法重写/覆盖(override) 基本介绍 : 简单来说 ,方法覆盖(重写)就是子类有一个方法 ,和父类的某个方法的名称返回类型 ,参数一致 ,那么就可以说子类的这个方法 覆盖了父类的那个方法 入门 : //com.edu.override_ 包下的 Override01.java • 注意事项和
阅读全文
摘要:项目 - 零钱通 项目开发流程说明 项目需求说明 使用 Java 开发 零钱通项目 , 可以完成收益入账,消费,查看明细,退出系统等功能 项目的界面 项目代码实现 编写文件 SmallChangeSys.java 完成基本功能 (过程编程) 先使用过程编程,后面改成 OOP 版本 项目代码实现改进
阅读全文
摘要:断点调试(debug) 一个实际需求 在开发中, 新手程序员在查找错误时, 这时老程序员就会温馨提示, 可以用断点调试, 一步一步的看源码执行的过程,从而发现错误所在。 重要提示 : 在断点调试 过程中,是运行状态,是以对象的 运行类型 来执行的 断点调试介绍 断点调试是指在程序的某一行设置一个断点
阅读全文
摘要:面向对象编程三大特征 封装 继承 和 多态 面向对象编程-封装 封装介绍 封装(encapsulation)就是把抽象出的数据[属性]和对数据的操作[方法]封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作[即方法] ,才能对数据进行操作 举例 : 就好比我们日常使用的电视机 ,电视机
阅读全文
摘要:包 ● 包的三大作用 区分相同名字的类 当类很多时,可以很好的管理类 [看JavaAPI 文档] 控制访问范围 我们可以找到JDK安装的目录 ,从中找到src 也就是存放源码的目录 ,在里面可以看到util ,进入就可以看到util包中含有的类 包基本语法 package com.hspedu; 说
阅读全文
摘要:访问修饰符 ●基本介绍 java提供四种访问控制修饰符号, 控制方法和属性(成员变量)的访问权限 (范围) : 公开级别: 用public 修饰,对外公开 受保护级别: 用protected修饰, 对子类和同一个包中的类公开 默认级别: 没有修饰符号,向同一个包的类公开. 私有级别: 用privat
阅读全文
摘要:作业练习 编写类A01,定义方法max,实现求某个double数组的最大值,并返回 Homework01.java 编写类A02,定义方法find,实现查找某字符串数组中的元素查找,并返回索引, 如果找不到,返回 -1 Homework02.java 编写类Book,定义方法updatePrice,
阅读全文
摘要:this关键字 先看一段代码,并分析问题 This01.java public class This { public static void main(String[] args) { Dog01 dog1 = new Dog01("brave",3); dog1.info(); }}class
阅读全文
摘要:在IDEA中查看JDK的源码 一般来说IDEA配置好JDK以后 ,jdk的源码其实也配置好了 如果没有的话找到这个位置 FIle -> Project ->SDKs -> Sourcepath ,找到右侧的加号 选中JDK主目录下的两个source文件 在需要查看某个方法源码时 ,将光标放在该方法
阅读全文
摘要:IDE(集成开发环境)-IDEA ● IDEA介绍 IDEA 全称 IntelliJ IDEA 在业界被公认为最好的Java开发工具 IDEA是JetBrains公司的产品,总部位于捷克的首都布拉格 除了支持Java开发,还支持HTML,CSS,PHP,MySQL,python ● Eclipse介
阅读全文
摘要:构造方法/构造器 我们来看一个需求:前面我们在创建人类的对象时,是先把一个对象创建好后,再给 他的年龄和姓名属性赋值,如果现在我要求,在创建人类的对象时,就直接指定这个 对象的年龄和姓名,该怎么做?这时就可以使用构造器。 基本语法 [修饰符] 方法名 (形参列表){//这里的方法名就是构造器的名字
阅读全文
摘要:作用域 ● 基本使用 面向对象中,变量作用域是非常重要知识点,相对来说不是特别好理解,请大家注意听,认真思考,要求深刻掌握变量作用域。 Scope01.java 1.在java编程中,主要的变量就是属性(成员变量)和局部变量。 2.我们说的局部变量一般是指在成员方法中定义的变量。【举例Cat类:cr
阅读全文
摘要:递归解决八皇后问题 √八皇后问题说明 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。 该问题是国际西洋祺棋手马克斯贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击 即:任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 √八皇后思路分析 1)第
阅读全文
摘要:方法重载(OverLoad) 基本介绍 java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致! 比如:System.out.printIn(100) out是PrintStream类型 假如没有方法重载的话, 就会出现printchar printint的打印方式 ,根据类型进行都要打
阅读全文
摘要:可变参数 ·基本概念 jva允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。 这里就可以通过可变参数实现 基本语法 访问修饰符 返回类型 方法名(数据类型 … 形参名){ } 快速入门案例 VarParametert01.java 看一个案例类HspMethod, 方法sum p
阅读全文
摘要:方法递归调用 基本介绍 简单的说:递归就是方法自己调用自己,每次调用时传入不同的变量递归有助于编程者解决 复杂问题,同时可以让代码变得简洁 pubilc void f1(){ f1();}//方法f1还是方法f1,也就表示一直调用同一个方法 · 递归能解决什么问题? 各种数学问题如:8皇后问题,汉诺
阅读全文
摘要:递归调用应用实例-汉诺塔 √汉诺塔传说 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根
阅读全文
摘要:成员方法练习 课堂练习题 MethodExercise01.java 1.编写类AA新方法:判断一个数是奇数odd还是偶数,返回boolean 2.根据行、列、字符打印对应行数和列数的字符,比如:行:4,列:4,字符 #, 则打印相应的效果 public class MethodExercise01
阅读全文
摘要:成员方法传参机制 方法的传参机制对我们今后的编程非常重要,一定要搞的清清楚楚明明白白。我们通 过案例来学习 基本数据类型的传参机制 Method Parameter01.java 看一个案例,分析结果是什么? public void swap(int a,int b){ int tmp = a; a
阅读全文
摘要:成员方法 基本介绍 在某些情况下,我们要需要定义成员方法(简称方法), 比如人类除了有一些属性外(年龄, 姓名 ),我们人类还有一些行为比如:可以说话、跑步,通过学习,还可以做算术题。这时就 要用成员方法才能完成。现在要求对Person类完善。 成员方法快速入门 Method01.java 添加sp
阅读全文
摘要:有关属性需要注意的细节 属性的定义语法同变量,示例:访问修饰符 属性类型 属性名; 这里简单的介绍访问修饰符的作用:即控制属性的访问范围 目前有四种访问修饰符 : public proctected 默认(不写也是一种访问修饰符) private 属性的定义类型可以为任意类型,包含基本类型或引用类型
阅读全文
摘要:类与对象 如何创建对象 1.先声明再创建 Cat cat; //声明一个对象cat cat = new Cat(); //创建对象 2.直接创建 Cat cat = new Cat(); 如何访问属性 √基本语法: 对象名.属性名; 案例演示赋值和输出 cat.namecat.age;cat.c
阅读全文
摘要:引用的缺省值null 引用也有缺省值一nul null是引用类型的缺省值 null代表空,不存在。可以读作空 引用类型的数组创建出来,初始值都是空 通过nul理解引用的“二级跳” public class class_Null { public static void main(String[] a
阅读全文
摘要:像自定义类型一样使用类 类就是一种自定义类型 在类定义中可以使用类,创建类的引用 在类定义中,甚至可以使用类自己的类创建引用 引用类型的缺省值是null。一个类定义中如果有引用,创建出来的实例,其缺省值是ul public class PhoneMaker { public static void
阅读全文
摘要:类、对象和引用的关系 类和对象的关系 类是对象的模版,对象是类的一个实例 一个Java程序中类名相同的类只能有一个,也就是类型不会重名 一个类可以有很多对象 一个对象只能根据一个类来创建 引用和类以及对象的关系 引用必须、只能是一个类的引用 引用只能指向其所属的类型的类的对象 相同类型的引用之间可以
阅读全文
摘要:认识数组类型 数组是一种特殊的类 数组的类名就是类型带上中括号 同一类型的数组,每个数组对象的大小可以不一样。也就是每个数组对象 占用的内存可以 不一样 这点和类的对象不同 可以用引用指向类型相同大小不同的数组,因为它们属于同一种类型 public class class_Array { publi
阅读全文
摘要:Java有一个的大大的布告板,放着所有实例 Merchandise m1 = new Merchandise0 使用new操作符可以创建某个类的一个实例。在Java程序 运行的时候,所有这些创建出来的实例都被Java放在内存里 一个叫做堆(heap)的、类似公告板的地方 创建一个实例,就是根据类的定
阅读全文
摘要:引用(reference)数据类型 Java中的数据类型分为基本数据类型和引用数据类型 看例程,理解引用 引用数据类型和基本数据类型的相同点 都可以用来创建变量,可以赋值和使用其值 本身都是一个地址 引用数据类型和基本数据类型的不同点 基本类型变量的值,就是地址对应的值。引用数据类型的值还是一个地址
阅读全文
摘要:如何创建类的实例/对象(Instance/Object) 从数据类型的角度来看,类就是自己创建了一种新的数据类型。类也叫做 "自定义类型”。一个Java程序中不允许类同名。 看例程,学习类和对象的使用 认识点操作符 点操作符是用来访问/操作前面实体的属性的,类似于“的” merchandise.na
阅读全文
摘要:用变量表示商品 商品有标识,名字,数量,价格着几个属性 多个商品怎么办?重复,又是重复! public class variable_represents_commodity { public static void main(String[] args) { //用四个变量表示商品 String
阅读全文
摘要:一个程序搞定成绩的各种处理需求 求某年最好成绩 求某年的平均成绩 求所有年份最好成绩 求某门课历年最好成绩 import java.util.Scanner;public class Example_work01 { public static void main(String[] args) {
阅读全文
摘要:如果要存储多年的成绩怎么办? 为每年创建一个数组? 这种行为和为每一门成绩创建一个变量很像! import java.util.Scanner;public class OneYearOneArray { public static void main(String[] args) { int c
阅读全文
摘要:重新认识基本类型的变量 一个简单的使用变量的程序 变量的基本逻辑一有定才有变。在人看来,固定的是名字,变化的是名字对 应的值。对计算机来说,固定的是地址,变化的是值 用人工的方式,模拟一下计算机执行给变量a赋值的过程。 理解计算机如何使用内存,完成变量的功能 内存就是一堆白纸,只能通过页码编号访问,
阅读全文
摘要:使用数组的长度 数组变量length可以获得数组的长度 数组创建之后,长度不可以改变 数组索引过界和初始值 访问数组过界出错的例子,数组出界的错误叫做IndexOutOfBoundException 如果没有把握数组是否会出界,可以把索引和数组长度做比较。注意索引是从0开始 的,不是从1开始的 数组
阅读全文
摘要:什么是数组和数组的语法 数组的特点是: 数组是相同类型的变量的集合,所有元素的类型都一样 可以指定数组包含的元素个数,最多为int的最大值个 元素有固定的顺序 每个元素都有一个固定的编号,称之为索引(index), 从0开始递增,类型为int 可以像操作变量一样读写数组中的任何一个元素 如果说之前的
阅读全文
摘要:循环判断总结 java的注释 单行注释://多行注释:/* */ 可以在开始结束符输入任何内容 生成指定范围内的随机数 新功能 Math.random() 生成随机数 ,随机数在0到1之间,类型是double 生成一个在指定范围内的随机正整数程序关键点 得到随机数 ,java支持得到的 0和1的do
阅读全文
摘要:猜数字的游戏 善假于物也 Random方法和readInt方法是两个工具,可以完成一个明确具体的功能。 游戏功能 猜数字:生成一个指定范围内的随机正整数,从命令行读取一个整数,如果和随机数相同,就 算猜中。 固定随机数的范围 支持每次猜数字游戏的猜测次数,在指定次数内没猜对,则猜数字失败,否则就是成
阅读全文
摘要:程序执行流程之switch语向 将阿拉伯数字转换为中文数字 使用if可以完成,但是略显不够整洁 能够根据两个值相比较,进入某个代码块最适合这个情况 用if else来完成 public class Example { public static void main(String[] args) {
阅读全文
摘要:用while语句增强找整除数的程序 增强点:找出n个可以被整除的数。 while语句的语法 条件表达式的结果是一个boolean值,如果为true,则执行循环体,如果为false, 则循 环结束。 While循环体是一个代码块。所以while循环也是可以嵌套别的语句的,包括while语句, for语
阅读全文
摘要:程序循环之for语句 for语句 让程序在满足某条件时,重复执行某个代码块。for是Java中的关键字 for语句语法和简单的示例程 初始语句在for循环开始前执行一次,以后不再执行;循环体条件表达式在每次循环体执 行前会执行,如果为tue,则执行循环体,否则循环结束;循环体后语句会在每次循环执 行
阅读全文
摘要:if-else的简化 if-else省略大括号 如果if或者else的语句块只有一个语句,可以省略大括号 简化求最大数的程序 语法 : if(boolean值) if语句块else else语句块 if(boolean值){ if语句块else if (){ if语句块}else{ else语句块}
阅读全文
摘要:程序执行流程之if-else语句 顺序执行 代码块的执行是顺序执行 只要程序运行过程中不出错,就会一行行的向下顺序执行 买包子的问题 买3个肉包子 如果是刚出笼的热肉包子,就多买两个呢? if-else语法 if-else语法,只有一个语句块被执行 if和else都是Java中的关键字 if语法 把
阅读全文
摘要:字符集编码和字符串 什么是字符集(Charset) 字符集就是字符的集合。一般会包含一种语言的字符。比如GBK,是包含所有 常用汉字字符的字符集。ASCII是包含英文字符的字符集。 字符就是Java中的char , char是character的简写。 什么是编码(Encoding) char代表一
阅读全文
摘要:操作符和数据类型总结 自增和自减操作符 自增自减操作符是可以直接改变变量值的操作符 前加加和前减减 后加加和后减减 其实是一个+1操作和一个赋值操作的缩写 public class IncreassDecrease { public static void main(String[] args) {
阅读全文
摘要:基本数据类型的更多语法点 变量要先赋值后使用 不给变量赋值代表什么 不赋值就使用会怎么样 int a;int b = a + 1;//此时如果没有给赋值,下面的变量使用就会报错//此时就需要赋值初始化变量 计算并赋值运算符 作用是为了让代码更简洁。比如a = a + 10 , 可以简化为a += 1
阅读全文
摘要:字面值的八进制和十六进制 以0开头的整数为八进制 05 就是十进制的5 011就是十进制的9 以0x开头的整数位十六进制 0xF 就是十进制的15 0x11就是十进制的17 int a = 05;int b = 011;int c = 0xF;int d = 0x11;System.out.prin
阅读全文
摘要:什么是运算符 运算符对一个或者多个值进行运算,并得出一个运算结果。 运算符的运算结果类型有的是固定的,有时候会根据被计 算的值变化。比如两个int相加,结果的类型就是int。两 个byte相加,返回值的类型就是byte。 混淆点:除赋值运算符外,运算符本身不会更改变量的值 取模运算符:% 用来计算余
阅读全文
摘要:Java中的基本数据类型 public class BigNumber { public static void main(String[] args) { int bignum = 99999999999; long number = 9999999999L; }} 认识二进制 十进制 每一位可以
阅读全文
摘要:再探加减乘除的程序 public class variable { public static void main(String[] args) { int variable; //创建一个变量 ;表示表达式结束为一个语句 variable = 999; //一个赋值的表达式 int a = 3;
阅读全文
摘要:从加减乘除到变量 public class MathCalc { public static void main(String[] args) { System.out.println(5+6); System.out.println(5-6); System.out.println(5/6.0);
阅读全文
摘要:Windows环境下安装java的IDE 首先进入这个网站 https://www.jetbrains.com/idea/download/下载ide程序 选择Windows - Community选项(基本功能 ,但是初学的时候基本够用) 下载完成之后 ,运行 使用默认的文件位置安装 , 之后选择
阅读全文
摘要:java helloworld代码解析 类(class)语法元素public class HelloWorld {• public static void main(String[]args){• System.out.printIn("Hello World!"); }} 类—class H
阅读全文
摘要:首先 ,先创建一个Windows自带的笔记本文件 ,然后输入以下java代码 public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); }} 输入完成之后
阅读全文