Java基础-day10-基础题-继承&抽象类 什么是继承?继承有什么好处? 继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。 Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。 继承来的属性和方法尽管是隐式的,但仍是类C的属性和方法。继承是在一些比较一般的类的基础上构造、建立和扩充新类的最有效的手段。 从理论上说,一个类可以是多个一般类的特殊类,它可以从多个一般类中继承属性与方法,这便是多重继承。Java出于安全性和可靠性的考虑,仅支持单重继承,而通过使用接口机制来实现多重继承。 个人认为这更好的提现了JAVA特性中的封装,而且符合软件工程的设计思想:低耦合 2. 关于静态成员变量 无论父类中的成员变量是静态的、还是非静态的,子类都会拥有父类中的这些成员变量。 3.
接口继承 接口继承(inheritance)与类继承很类似,就是以被继承的interface为基础,增添新增的接口方法原型。 我们以Cup作为原interface: interface Cup { void addWater(int w); void drinkWater(int w); } 我们在继承Cup的基础上 interface的多重继承 在Java类的继承中,一个衍生类只能有一个基类。也就是说,一个类不能同时继承多于一个的类。 我们需要在每个类中覆盖Food类的eat()方法。 ? 抽象与具体 Java中提供了抽象类(abstract class)的语法,用于说明类及其方法的抽象性。 类中的另一个方法happyFood()并不是 当一个类中出现abstract方法时,这个类的声明必须加上abstract关键字,否则Java将报错。一个abstract类不能用于创建对象。
点击上方“Java团长”,选择“置顶公众号” 干货文章第一时间送达! 在实施接口中,我们利用interface语法,将interface从类定义中独立出来,构成一个主体。 接口继承 ---- 接口继承(inheritance)与类继承很类似,就是以被继承的interface为基础,增添新增的接口方法原型。 interface的多重继承 ---- 在Java类的继承中,一个衍生类只能有一个基类。也就是说,一个类不能同时继承多于一个的类。 我们需要在每个类中覆盖Food类的eat()方法。 ? 抽象与具体 Java中提供了抽象类(abstract class)的语法,用于说明类及其方法的抽象性。 类中的另一个方法happyFood()并不是 当一个类中出现abstract方法时,这个类的声明必须加上abstract关键字,否则Java将报错。一个abstract类不能用于创建对象。
Java基础-day10-代码题-继承&抽象类 1.门类继承题: 编写代码,实现如下功能: (1)定义一个门类, 包含3个属性:宽度width 和 高度height ,颜色color 包含2个方法: (3)定义一个测试类,测试类定义一个main方法 分别创建 门对象 和 木头门对象, 为创建的木头门对象属性赋值, 调用开门和关门两个方法。 ? ? ? ,内容为:“猫吃鱼...” 3、定义狗类,继承动物类,重写父类中的吃饭方法,内容为:“狗吃骨头...” 4、定义测试类,分别创建猫对象和狗对象,并分别给父类对象中的名称和年龄属性赋值; 5、分别使用猫对象和狗对象获取名称和年龄的属性值并打印在控制台上 ..."); } } package StudentJavaSEday10; /* * 猫类继承动物类: */ public class Mao extends DongWu{ //重写吃饭的方法 ; public void chiFan() { System.out.println("猫吃鱼..."); } } package StudentJavaSEday10; /* * 测试类
面向对象(包的定义及注意事项) A:定义包的格式 package 包名; 多级包用.分开即可 B:定义包的注意事项 A:package语句必须是程序的第一条可执行的代码 B:package语句在一个java HelloWorld.java b:通过java命令执行。 java 包名.HellWord 10.04_面向对象(不同包下类之间的访问) A:案例演示 不同包下类之间的访问 10.05_面向对象(import关键字的概述和使用) A:案例演示 为什么要有import 成员内部类被静态修饰后的访问方式是: 外部类名.内部类名 对象名 = new 外部类名.内部类名(); 10.11_面向对象(成员内部类的面试题) A:面试题 要求:使用已知的变量,在控制台输出30,20,10 class Outer { public int num = 10; class Inner { public int num = 20;
乔丹']) pop2=queue.popleft() print(pop2)#哈登,左删除 print(queue)#deque(['字母哥', '詹姆斯', '科比', '乔丹']) 七、分支 a=10 if(a>10): print("a大于10") else: print("a不大于10") 八、循环 1.for循环 循环遍历列表,循环次数取决于列表元素个数 range()范围性方法默认从0 将一串数据中的单个数据依次循环查看和使用 for i in [1,2,3,4,5]: print(i) for i range(5): print(i) 2.whlie循环 while(循环终止条件) a=0 while(a<10 赋值 import math #列表生成式 #变量的声明,一般采用驼峰命名法,当名称出现多个单词时, # 首单词首字母小写,其余后面单词首字母大写 numList=[] for i in range(10 ): numList.append(i) print(numList)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] numList1=[i for i in range(10)]
Java基础类库 使用Scanner获得键盘输入: public class ScannerKeyBoardTest { public static void main(String[] args Java7新增的Objects类: public class ObjectsTest { // 定义一个obj变量,它的默认值是null static ObjectsTest obj; 为了避免程序中对于double运算的繁琐,可以以BigDecimal基础定义一个Arith工具类: public class Arith { // 默认除法运算精度 private static final int DEF_DIV_SCALE = 10; // 构造器私有,让这个类不能实例化 private Arith() {} // 提供精确的加法运算。 Java 8专门新增了一个java.time包,该包下包含了如下常用类: Clock、Duration、LocalDate、LocalTime、LocalDateTime、MonthDay、Year、
昨天后台的一个小伙伴提到了,java里面的匿名类,这个概念在平常java码代码的时候用的特别多,所以找了一篇介绍表述比较清晰的文章分享给大家,能极大的简化代码量,是java编码基本功,属于必须掌握的范畴 匿名内部类也就是没有名字的内部类 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象方法 然后实现了Child的一个实例,将其向上转型为Person类的引用 但是,如果此处的Child类只使用一次,那么将其编写为独立的一个类岂不是很麻烦? 中的方法在大括号中实现了 这样便可以省略一个类的书写 并且,匿名内部类还能用于接口上 实例3:在接口上使用匿名内部类 interface Person { public void eat();} ,那么其子类中的方法都可以使用匿名内部类来实现 最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread类或是继承Runnable接口 实例4:Thread类的匿名内部类实现 public
类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。 类的定义 [修饰符] class 类名{ } 定义类的注意: (1)如果类使用了public 修饰符 必须保证当前的文件名和当前类相同 (2) 类名使用名称表示 类表示某一类事物 首字母大写 public 一个引用变量没有通过new分配内存空间,这个对象就是空对象,Java使用关键字null表示空对象。 当调用一个空对象的实例变量或实例方法时,会抛出空指针异常NullPointException String str = null; System.out.println(str.length());//java.lang.NullPointerException 当一个对象被创建后,对象保存在堆内存中,Java程序不允许直接访问堆内存的对象,不管是数组还是对象,当程序访问引用变量的成员值或者方法时,实际上是访问引用变量的所指向的数组或者对象的成员变量或者方法。
面试官:Java的容器类你有什么了解吗? -:额,没有用过.... 面试官:你肯定用过,但你没有注意过.... -:应该是吧.... 你知道什么是容器类吗? Java容器可以说是增强程序员编程能力的基本工具,本文将与您一起理解容器类,看完之后你也许会恍然大悟,这原来就是容器类啊,一起避免面试时的尴尬!!!! 我们可以通过创建引用来持有对象,如 Class clazz; 也可以通过数组来持有多个对象,如 Class[] clazs = new Class[10]; 然而,一般情况下,我们并不知道要创建多少对象 数组显然只能创建固定长度的对象,为了使程序变得更加灵活与高效,Java类库提供了一套完整的容器类,具备完善的方法来解决上述问题。 2.容器的类别 ? Collection<Integer> c = new ArrayList<Integer>(); for(int i = 0; i < 10; i++){
Java是完全面向对象的,必须熟悉OOP才能够编写Java程序。面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。 ---- 上一篇内容:Java基础:Java流程控制 下一篇内容:Java基础:Java面向对象 更多知识学习:全网最全的 Java 技术栈内容梳理(持续更新中) ---- 文章目录 一、面向对象程序设计概述 Java是完全面向对象的,必须熟悉OOP才能够编写Java程序。面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。 1、类 类(class)是构造对象的模板或蓝图。 我们可以将类想象成制作小甜饼的切割机,将对象想象为小甜饼。由类构造(construct)对象的过程称为创建类的实例(instance)。 用 Java 编写的所有代码都位于某个类的内部。 标准的 Java 库提供了几千个类,可以用于用户界面设计、日期、日历和网络程序设计。尽管如此,还是需要在 Java 程序中创建一些自己的类,以便描述应用程序所对应的问题域中的对象。
转眼间我们已经工作完一周了,这周开始阿Q要不定时更新知识了,先让我们来学习一下java中的Object与string类吧。 Object类 API:Application Programming Interface 应用程序编程接口,Java API就是Java提供给我们使用的类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的 ,只需要学习这些类如何使用。 Object:所有类都直接或者间接的继承自Object类,是类层次结构的根类、 public int hashCode() 返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。 此方法返回此 Object 的运行时类对象,也就是Class类的一个对象,此对象用来描述类的class文件。
Java基础系列文章 Java基础(一):语言概述 Java基础(二):原码、反码、补码及进制之间的运算 Java基础(三):数据类型与进制 Java基础(四):逻辑运算符和位运算符 Java基础(五) :流程控制语句 Java基础(六):数组 Java基础(七):面向对象编程 Java基础(八):封装、继承、多态性 Java基础(九):Object 类的使用 Java基础(十):关键字static、代码块 、关键字final Java基础(十一):抽象类、接口、内部类 Java基础(十二):枚举类 Java基础(十三):注解(Annotation) Java基础(十四):包装类 Java基础(十五):异常处理 Java基础(十六):String的常用API Java基础(十七):日期时间API Java基础(十八):java比较器、系统相关类、数学相关类 Java基础(十九):集合框架 Java基础(二十) :泛型 Java基础(二十一):集合源码 Java基础(二十二):File类与IO流 Java基础(二十三):反射机制 Java基础(二十四):网络编程 Java基础(二十五):Lambda表达式、方法引用
在 Java 中,这个“根”就是 Object 类。 Object 类中包含有: toString() equals() 两个方法,前者可以打印对象的信息(可以在子类中具体实现);后者判断是否管理着同一个对象 (默认实现为 ==) 。 比如,要实现只要 CD 类中 artist 成员相同,equals()就返回 true,需要这样写: @Override public boolean equals(Object obj) {
Java基础系列文章 Java基础(一):语言概述 Java基础(二):原码、反码、补码及进制之间的运算 Java基础(三):数据类型与进制 Java基础(四):逻辑运算符和位运算符 Java基础(五) :流程控制语句 Java基础(六):数组 Java基础(七):面向对象编程 Java基础(八):封装、继承、多态性 Java基础(九):Object 类的使用 Java基础(十):关键字static、代码块 、关键字final Java基础(十一):抽象类、接口、内部类 Java基础(十二):枚举类 Java基础(十三):注解(Annotation) Java基础(十四):包装类 Java基础(十五):异常处理 Java基础(十六):String的常用API Java基础(十七):日期时间API Java基础(十八):java比较器、系统相关类、数学相关类 Java基础(十九):集合框架 Java基础(二十) :泛型 Java基础(二十一):集合源码 Java基础(二十二):File类与IO流 Java基础(二十三):反射机制 Java基础(二十四):网络编程 Java基础(二十五):Lambda表达式、方法引用
,而字 符串应用又非常广泛,因此Java语言专门提供了 String 类。 )); //'b' System.out.println(s.indexOf('c')); //6 System.out.println(s.indexOf('c', 10 //15 System.out.println(s.indexOf("bbb")); //3 System.out.println(s.indexOf("bbb", 10 12 System.out.println(s.lastIndexOf('c'));//17 System.out.println(s.lastIndexOf('c', 10 ); System.out.println(str.substring(0, 5)); 输出结果: hello world 注意:在java
在Java语言中,方法大多用于处理一些数据并得到结果,其包括以下几种要素: 修饰符:用于限定方法的权限,常用的有public、private、static。 方法的重载 Java语言规定,在同一个类中,允许出现同名的方法,只要方法的参数列表不同即可,这就是方法的重载。 参数列表不同,指的是个数、顺序或数据类型不同。 方法的重写 Override 子类中如果出现了与父类一模一样的方法时,子类会重写父类的方法。方法声明要与父类相同,而且修饰权限不能比父类更低。 此处内容在后期讲解继承的时候会再次详解。 类 类是什么?生活中的解释就是由一些具有共同特征的个体组成的一个群体,比如人类。在Java中也是如此,更加专业的说法是描述一类对象的行为和状态。 在Java语言中存在一些提前由jdk开发者定义好的类,我们可以直接导入调用,比如String等等。当然,我们也可以自定义类。 自定义类即是对现实中事物的描述,描述事物的属性方法。
本文链接:https://blog.csdn.net/weixin_42528266/article/details/102971807 Math类 包含了常见的数学运算函数。 random() 生成[0,1)之间的随机浮点数 生成:0-10之间的任意整数:int a = (int)(10*Math.random()); 生成:20-30之间的任意整数:int b = 20 + (int)(10*Math.random()); 枚举 只能够取特定值中的一个 使用enum关键字 所有的枚举类型隐性地继承自 java.lang.Enum。 (枚举实质上还是类!而每个被枚举的成 员实质就是一个枚举类型的实例,他们默认都是public static final的。可以直接通过枚举 类型名直接使用它们。) 强烈建议当你需要定义一组常量时,使用枚举类型 尽量不要使用枚举的高级特性,事实上高级特性都可以使用普通类来实现,没有必要引 入复杂性! File类 文件和目录路径名的抽象表示形式。
至于基本类型,难点不多,我们不在叙述了,这次我们讲 另一种类型 --- 封装类型 ---- Java 有 8 种基本类型,每种基本类型都有一个对应的包装类型. 包装类又是啥呢? 包装类指的是 Java 的类,内部有实例变量,保存了与之相对应的基本类型的值,这些类有类方法,类变量和其他的实例方法. ---- Integer 对于包装类来说,我们经常用到的一个就是自动装箱和拆箱,当然由于 Java 编译器的问题,不需要我们手动来操作,不过这里给大家顺便解释下 基本类型到包装类型的过程,我们一般称之为装箱 = 0) { sum += i; } } 在我们写了上述自动拆箱、装箱的代码后,Java 编译器会帮我们把 代码替换为valueOf 相关的代码 比如: i = new Integer(10); 当然,强烈建议用 valueOf 方法,毕竟很直观的来看,构造方法需要用到内存来新建对象,而且从 Java9 开始,已经被标记 过时了。
Scanner 类的作用是用来获取用户的输入 前提: import java.util.Scanner; 创建文件扫描器对象,System.in表示的是标准输入 (装饰者模式????