自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 【常见异常积累】不定时更新(新手参考,高手勿进)

java.lang.ClassCastException:强制类型转换异常,类型转换错误

2021-03-31 11:33:28 68

原创 综合练习:使用多态完善汽车租赁系统计价功能

练习3客车类public final class Bus extends MotoVehicle { private int seatCount; public Bus(String no, String brand, int seatCount) { super(no, brand); this.seatCount = seatCount; } public int getSeatCount() { return seatCount; } public int calRe

2021-03-31 08:50:47 1655

原创 JDK1.8接口特性对比

JDK1.8之前的接口特性:1.接口中的变量都是静态常量(public static final),必须显式初始化2.接口中的所有方法默认都是public abstract3.接口没有构造方法,不可以被实例化,但可以被实现4.实现类必须实现接口的所有方法5.实现类可以实现多个接口(Java中的多继承)·关键字implements,多个接口之间用逗号隔开6.接口(interface),在JAVA中是一个抽象类型,在JDK8之前接口是抽象方法的集合7.一个类通过实现接口的方式,从而来继承接口的抽

2021-03-30 16:03:27 349 3

原创 多态中,父类引用指向子类对象的代码执行顺序

父类引用指向子类对象,执行顺序为:父-子-父-父-子-子。解释:若存在静态代码块,则先执行父类的静态代码块,再执行子类的静态代码块(父子);然后执行父类的非静态代码块,父类的构造方法->子类的非静态代码块,子类的构造方法。代码如下:package com.yhzz.demo1;public class Test1 { public static void main(String[] args) { Dad dad = new Baby(); }}clas

2021-03-29 09:38:17 455

原创 父类引用指向子类对象的方法调用问题

阅读如下代码,结果是什么?public class Person { String name = "person"; public void shout(){ System.out.println(name); }}public class Student extends Person{ String name = "student"; }public class Test { public static void main(Strin

2021-03-28 23:09:35 2090 1

原创 抽象类VS接口

Java中,抽象类和接口是支持抽象定义的两种机制,由于这两种机制的存在,赋予了Java强大的面向对象的能力相同点:·代表系统的抽象层·都不能被实例化·都能包含抽象方法·用于描述系统提供的服务,不必提供具体实现不同点:·在抽象类中可以为部分普通方法提供默认实现,JDK8之前接口中只能包含抽象方法,JDK8之后接口可包含默认方法·一个类只能继承一个直接的父类,但可以实现多个接口使用原则·两个类满足is-a时使用抽象类;满足has-a时使用接口·接口做系统与外界交互的窗口,接口提供服务·接

2021-03-24 16:22:41 98

原创 抽象类和抽象方法/final关键字知识要点

抽象类1、使用abstract修饰的类叫做抽象类2、抽象类中可以有0-多个抽象方法3、抽象类中可以有实例方法4、但是普通类中不可以有抽象方法抽象方法:1、使用abstract修饰的方法叫做抽象方法2、抽象方法必须存在于抽象类中3、抽象方法必须在子类中被实现,除非子类是抽象类4、如果存在直接父类和间接父类,子类都需要将他们的抽象方法进行实现final关键字:1、final修饰变量时,该变量会变成常量,值不可变final String name = "张三";//该值不能再被改变2、

2021-03-24 15:10:01 970

原创 继承和封装练习题

一、继承练习题将以下类分别封装,定义setter和getter方法用于存值和取值定义人类Person,将Person类定义为抽象类,(1)字段:身份证号idCard,姓名name,性别gender,年龄age,职业profession,联系方式phone。并定义相应的属性;(2)定义函数message()输出个人的基本信息(3)定义无参构造函数,并打印一句话,输出“我是人类”。定义一个教师类Teacher,继承于人类;(a)具有字段:职工号wordID,所教授的课程名curriculum,所

2021-03-24 08:26:56 1848 1

原创 抽象类中的静态方法可以被继承和重写吗?/多态绑定机制

可以被继承,但不能被重写。java多态中有动态绑定机制和静态绑定机制。动态绑定机制适用于实例方法:与引用变量实际的引用对象相绑定,调用子类重写后的方法(不能调用子类独有的方法),由运行时JVM决定;静态绑定机制适用于静态方法(static修饰的方法):与引用变量所声明的类型绑定,实际在编译阶段就进行了绑定。成员变量(实例变量和静态变量):与引用变量所声明的类型绑定,在编译阶段就进行了绑定。阅读如下代码:父类定义为抽象类,父类中定义了抽象方法eat()public abstract clas

2021-03-23 17:49:21 827

原创 java中super和this关键字的使用

super使用场景:1.子类方法中重写父类方法时2.在子类中定义了和父类同名的成员变量时,父类的成员变量被屏蔽,优先使用子类的成员变量(super可以使被屏蔽的父类成员可见)说明:当子类继承父类非私有属性时,若子类中无同名变量,使用this.属性名可以直接访问父类属性(从父类中去找)。若子类中存在同名变量,使用this.属性名只能访问子类中的同名变量,若要调用父类中的同名变量,需要使用super.属性名。this和super对比:1.访问属性·this关键字:指代当前对象,可以在本类中直接访

2021-03-23 09:44:29 396

原创 方法重写与方法重载的理解

方法重载:应用于同一个类中,其中,方法名相同,参数列表不同(参数个数或者参数类型),与返回值和访问修饰符无关。可以理解为你有一个双胞胎兄弟(同一个类中,两个或多个方法),和你长得一摸一样(方法名相同,与返回值和访问修饰符无关),但是你们两个得有点不一样的地方来区分一下,这个不一样的地方只能是头型不同(参数列表不同,可以是参数个数不同或者参数类型不同)方法重写:应用于继承中的子类和父类之间,方法名相同,参数列表相同,返回值为父类该方法的返回值或其子类,访问修饰符不能严于父类。可以理解为你从你爸那拿来

2021-03-22 15:53:24 170

原创 多重继承中,孙子类可以继承爷爷类的属性和方法吗?

可以。看如下代码:爷爷类:Animalpackage com.Animal;public class Animal { private String color; private String feetNum; public String getColor() { return color; } public void setColor(String color) { this.color = color; }

2021-03-22 15:37:53 3149 2

原创 综合练习:实现汽车租赁系统的计价功能

MotoVehicle类(汽车抽象类)/** * 汽车抽象类。 */public abstract class MotoVehicle { private String no;// 汽车牌号 private String brand;// 汽车品牌 /** * 无参构造方法。 */ public MotoVehicle() { } /** * 有参构造方法。 * @param no 汽车牌号 * @param brand 汽车品牌 */ public Mot

2021-03-22 14:59:57 2362 2

原创 Java中的抽象类可以有构造函数吗?/抽象类中的构造方法作用是什么?

答案是肯定的。在抽象类中定义构造函数,在语法上并不会报错,那么说明构造函数是可以存在的。既然抽象类并不能实例化,那抽象类中的构造函数存在的意义是什么?抽象类必须被子类继承来实现。子类在调用父类时 无论自己有没有构造方法都会先去执行父类无参的函数。哪怕父类是抽象类。虽然抽象类不能被实例化,但是可以在构造方法中初始化一些参数;也可以在子类中调用父类的构造方法。阅读如下代码:父类:public abstract class Demo1 { String name; String se

2021-03-21 16:27:37 4452 1

原创 java基础之字符串

除了数字和java关键字外,其他的由多个字符组成的一串字符,都可以叫做字符串。在java中,字符串需要用双引号引起来。使用String对象存储字符串String s = “Hello World”;常用方法:length():返回字符串长度equals():对比两个字符串是否相等课堂练习:实现会员注册,要求·用户名长度不小于****3·密码长度不小于****6·注册时两次输入密码必须相同Scanner sc = new Scanner(System.in);System.out.pr

2021-03-17 14:53:12 700

原创 java基础之数组

定义:数组存储相同数据类型的一组数据。声明一个变量就是在内存空间划出一块合适的空间声明一个数组就是在内存空间划出一串连续的空间数组的基本要素:·标识符(数组名称):是一个变量名,遵循驼峰命名规则·数组元素·元素类型:数组中所有元素的数据类型相同·元素下标,从0开始,到数组长度-1注意:数组长度固定不变,避免数组越界思考:下列哪组数据能存储在数组中?数组的类型是什么?·“刘星”,“夏雨”,“夏雪”·8,98,“c”,23·98.1,342.1,34.2如何使用数组?使用数组

2021-03-17 08:22:24 562

原创 java基础之循环结构

1.while循环:先判断,再循环语法格式:循环变量while(循环条件){ 循环体; 退出条件;}while循环一般由五部分组成:1)循环变量:用于进入循环的标识。2)while关键字3)循环条件:判断是否继续循环的依据4)循环体5)退出条件(更新循环变量):循环体是需要重复执行的代码,退出条件是当符合某条件时终止循环。退出条件是必须的,否则会陷入死循环。举例:int i = 0;//循环变量while(i<=100){ System.out.pr

2021-03-16 17:35:26 209

原创 面向对象——狗狗类和企鹅类源码

狗狗类public class Dog { String name = "无名氏"; // 昵称,默认值是"无名氏" int health = 100; // 健康值,,默认值是100 int love = 0; // 亲密度 String strain = "聪明的拉布拉多犬"; // 品种 /** * 输出狗狗的信息。 */ public void print() { System.out.println("宠物的自白:\n我的名字叫" + this.name +",健康值是"

2021-03-16 14:53:29 1036

原创 面向对象(六)封装——面向对象的三大特征之一

思考:下面的代码有什么不合理的地方?Dog d = new Dog();d.health = -1000; 问题:属性值可以被任何人任意访问和修改,可能会设置不合理赋值,安全性差。如何解决?封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问封装两个大致原则:1.把所有的属性藏起来2.把尽可能多的东西藏起来,对外提供便捷的接口如何实现封装?1.修改属性的可见性:设为private,防止错误的属性修改2.创建公有的getter/s

2021-03-16 14:51:12 83

原创 面向对象(五)成员变量和局部变量

代码阅读1:for(int i = 0;i<5;i++){ System.out.println("好好学习Java");}System.out.println(i);思考:上面的代码有什么问题?1.变量声明的位置决定变量的作用域。2.变量作用域是可在程序中按变量名访问该变量的区域。举例:在一个类的不同地方进行声明变量。代码阅读2:public class VarDemo { //成员变量(全局变量)作用域为整个类 int num = 18; Str

2021-03-16 14:48:18 124

原创 面向对象(四)方法重载

本节目标:掌握方法重载的定义及使用课程导入:public void run(){ System.out.println("小狗跑的很快"); }public void run(){ System.out.println("小狗跑的很快"); }阅读以上代码。例如:当我们在一个类中定义同名方法时,会提示”run()’ is already defined in ****“。那为什么我们上一小节中可以定义多个构造方法呢?//无参构造方法 publ

2021-03-16 14:40:03 177

原创 面向对象(三)构造方法

本节目标:·理解构造方法的作用·掌握无参/带参构造方法的定义和使用·理解this的作用及使用构造方法的作用:对象初始化系统默认提供无参构造方法;构造方法的参数可以指定;·无参构造方法语法格式:访问修饰符 构造方法名(){​ //初始化方法}·带参(自定义)构造方法语法格式:访问修饰符 构造方法名(参数1,参数2…){​ //初始化方法}构造方法示例:Dog dog = new Dog();``public Dog(String name,String sex){

2021-03-16 14:37:07 209

原创 面向对象(二)类的定义和实例化

面向对象设计的过程就是抽象的过程,一般分为三步:(1)发现类,类定义了 对象将会用用的特征(属性)和行为(方法)。(2)发现类的属性,对象所拥有的静态特征(3)发现类的方法,对象执行的操作称为类的方法举个栗子:猫类有会喵喵叫,长得可爱,长着爪子,会抓老鼠,爱吃鱼,各种各样的毛色,不同长度的毛发等特征。那么我们可以把拥有这类特征的动物都归为猫类。那么猫类的特征:毛色,毛长,年龄,名字,性别。猫类的行为:叫,吃饭,跑,跳等。如何用Java思想来创建一个类呢?一、定义类语法格式:[访问修饰符

2021-03-13 17:11:35 935

原创 面向对象(一)对象和类

1.面向对象Java是一种面向对象的语言,类比于人类认识现实世界的思维方式。这个世界由不同的“对象”组成,可以说能叫出名字的具体东西都能称为是一个对象。现实世界中,万物皆对象。比如我家装修房子,我只需要找到水电工、油漆工等具体的人来就可以完成房子的装修,而不需要我自己既会改水改电,又要会刷墙粉漆。这就是面向对象的思想。我要干什么事情,找一个专业的“对象”来干就ok了。在Java中是一样的道理。我想实现什么样的功能,只需要我知道该找“谁”,知道这个“人”能干啥,然后调用这个“人”的哪些方法就可以,而不

2021-03-13 15:36:26 251

原创 Scratch教程之神奇的画笔(2)

一、使用画笔画三角形分析:1.角色面向90度方向,向前移动100步,画出三角形第一条边。2.角色向左旋转120度,移动100步,画出三角形第二条边。3.角色向左旋转120度,移动100步,画出三角形第三条边。代码示例:思考问题:为什么画三角形要向左旋转120度?分析:由角色移动方向决定。先是面向正右方(90度方向)。参照下图。小知识:多边形分为内角和外角。多边形外角和为360度。代码优化1:由上图代码可见,重复编写了三次移动100步->向左旋转120度,是不是可以使用循环结构来

2021-03-07 11:10:10 4607

原创 Scratch之神奇的画笔(1)

课程目标:能够使用Scratch进行编程,让角色在舞台区进行绘制图形。一、选择角色将默认角色小猫删除,在角色库中选择爬虫。二、调用画笔工具三、进行代码编写分析:需要实现的业务逻辑:1.当点击运行按钮时,使爬虫角色处于舞台区正中央2.使用键盘上下键控制爬虫移动,使用左右键控制爬虫移动方向3.使用键盘控制爬虫绘图代码参考:四、思考1、如何使用键盘特定按键控制画笔的抬起和下落?2、如何使用键盘特定按键设置画笔的粗细?3、如何清除舞台区的图画?4、开动你的脑筋,还能够为你的画

2021-03-05 17:33:13 2031 4

原创 Scratch之猫和老鼠

一、情境分析角色:猫、老鼠场景:变换的场景动作:你追我赶二、实现步骤·新建项目,添加角色·通过键盘控制小猫移动·让老鼠跟随鼠标移动·让小猫开口说话·改变单调的背景1、主角登场添加猫、老鼠角色调整角色大小调整角色的旋转方式:左、右旋转2、如何通过键盘控制小猫移动?· “代码”——“事件”—— “当按下____键”指令积木·向上移动脚本设计· 向下、左、右移动的脚本设计(与向上类似)3、如何让老鼠跟随鼠标移动?·让“老鼠”一直追随着鼠标移动,程序要重复判断“老鼠”和鼠标

2021-03-03 20:22:19 1341 1

原创 认识Scratch

Scratch页面介绍案例一:项目实现逻辑1.创建角色2.创建背景3.让小狗动起来(每点击一次运动一次)4.让小狗在舞台上来回跑5.让小狗一直跑下去6.控制小狗奔跑的速度7.保存文件,运行程序...

2021-03-01 19:49:20 313

jdk1.8中英文版.zip

资源来源于网络,仅供学习交流使用,侵删

2021-03-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除