构造方法

面向对象之继承与派生

强颜欢笑 提交于 2019-12-20 08:20:06
阅读目录 一 初识继承 二 继承与抽象(先抽象再继承) 三 继承与重用性 四 派生 五 组合与重用性 六 接口与归一化设计 七 抽象类 八 继承实现的原理(可恶的菱形问题) 九 子类中调用父类的方法 一 初识继承 什么是继承 继承指的是类与类之间的关系,是一种什么是什么的关系,功能之一就是用来解决代码重用问题(比如练习7中Garen与Riven类有很多冗余的代码) 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 class ParentClass1: #定义父类 pass class ParentClass2: #定义父类 pass class SubClass1(ParentClass1): #单继承,基类是ParentClass1,派生类是SubClass pass class SubClass2(ParentClass1,ParentClass2): #python支持多继承,用逗号分隔开多个继承的类 pass 查看继承 >>> SubClass1.__bases__ #__base__只查看从左到右继承的第一个子类,__bases__则是查看所有继承的父类 (<class '__main__.ParentClass1'>,) >>> SubClass2.

java对象和类

断了今生、忘了曾经 提交于 2019-12-20 05:16:15
类 类是 构造对象的模板 ,由 类构造对象的过程 称为 创建类的实例 ,由java编写的所有代码都位于某个类的内部。 封装   封装是与对象有关的重要概念,形式上看封装只是将数据和行为组合在一个包内,并对对象使用者隐藏了数据的实现方式。   对象中的数据称为实例域,操纵数据的过程称为方法。每个特定的类实例对象都有一组特定的实例域值,这些值的集合就是这个对象的当前状态。   实现封装的关键在于绝不能让类的方法直接访问其他类的实例域,程序仅通过对象的方法域对象数据进行交互 对象 对象的三个特征:行为,标识,状态   同一个类的所有对象实例,由于支持相同的行为而具有家族式的相似性,对象的行为是用可调用的方法定义的。   状态:每个对象都保存着描述当前特征的信息,这就是状态,对象状态的改变必须通过调用方法来实现(若可以不调用方法就可以改变对象状态,就是说明封装性遭到破环)。   标识:对象的状态并不能完全描述一个对象,每个对象都有一个唯一的身份(标识),作为一个类的实例,每个对象的标识永远是不同的,状态也存在差异 设计类 在面向对象的程序设计时没有所谓的定都main函数开始,而是先从设计类开始,然后再往每个类中添加方法。 识别类的简单规则:寻找名词,方法对应动词 类之间的关系 依赖(users-a):一个类的方法操纵另一个类对象,就是依赖   应尽可能将相互依赖的类降至最少

BigDecimal 做精确运算

送分小仙女□ 提交于 2019-12-20 04:47:38
1. add() 加法 2.substrict() 减法 3.multiply() 乘法 4.divide() 除法 注意: 1)System.out.println()中的数字默认是double类型的, double类型小数计算不精准 。 2)使用BigDecimal类构造方法传入double类型时,计算的结果也是不精确的! 因为不是所有的浮点数都能够被精确的表示成一个double 类型值,有些浮点数值不能够被精确的表示成 double 类型值,因此它会被表示成与它最接近的 double 类型的值。 必须改用传入String的构造方法 。这一点在BigDecimal类的构造方法注释中有说明。 来源: CSDN 作者: 耳东的慢生活 链接: https://blog.csdn.net/weixin_41830501/article/details/103610215

java异常机制

旧街凉风 提交于 2019-12-20 01:22:36
java的异常对象都是Throwable类派生出的,又分为两类:Error和Exception,Error是java运行时系统内部错误或者资源耗尽错误,Exception则是java程序本身的错误。各种异常子类多如牛毛,没有必要刻意去记,知道异常机制原理即可。 对于任何一个抛出异常的方法,如果没有处理器捕获这个异常,那么当前线程就会结束。java发展至今,已经总结出了很多已知的异常,并给出了相应的处理器,所以,我们应该去尽量避免这些已查异常的出现,对于未知的异常,应该在代码中做好异常处理,避免当前线程终止。 1、自定义异常类 异常类的目的就是用来描述问题的,当遇到任何标准异常类都不适合的问题时,就可以自己创建异常类,自定义的异常类派生于Exception类或者Exception类的子类,一般有两个构造方法:默认构造方法和带有一个字符串参数的构造方法, 字符串用于描述异常。 举个例子:定义异常类MyException 和 MyException2 public class MyException extends IOException { public MyException(){} public MyException(String description){ super(description); } } public class MyException2 extends

1.Java 基础复习

纵饮孤独 提交于 2019-12-19 19:15:18
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.Java 中的基本数据类型4类8中 整型 -->byte、short、int、long 浮点型-->float double 字符类型--> char 布尔类型--> boolean 2.类型之间转换 byte、short、char ----> int ---> long --> float ---> double byte、short、char 运算 注意:强转 可能 会溢出 double 不能强转为float 比较特殊 有小数点 boolean 默认初始化为false 其他引用类型是null 3.switch 条件为整形 可以是 byte、short、char、int 注意:case穿透 使用 break 4.Java函数的传参规则: 基本类型传值、引用类型传对象的引用 5.类(对象)之间的关系 关联关系 方法里的参数的是另一个类 继承关系 XX是一种XX 聚合关系(聚集)相互独立,没有依赖 (组合)密不可分 实现关系 接口 6.面向对象编程 问题领域先考虑有什么对象 7.如果一个类没有构造器,编译器会自动生成一个无参构造器。 (1)在函数中定义的基本类型变量(即基本类型的局部变量)和对象的引用变量(即对象的变量名)都在函数的栈内存中分配; (2)堆内存用来存放由new创建的对象和数组以及对象的实例变量

Java类的生命周期

﹥>﹥吖頭↗ 提交于 2019-12-19 12:50:56
类的生命周期 java类的生命周期就是指一个class文件从加载到卸载的全过程。 完整的生命周期会经历加载、连接、初始化、使用、和卸载五个阶段,当然也有在加载或者连接之后没有被初始化就直接被使用的情况,如图所示: 加载 在java中,我们经常会接触到一个词——类加载,它和这里的加载并不是一回事,通常我们说类加载指的是类的生命周期中加载、连接、 初始化三个阶段。在加载阶段,找到需要加载的类并把类的信息加载到方法区中, 然后在堆区中实例化一个java.lang.Class对象,作为方法区中这个类的信息的入口。 对于加载的时机,真正用到一个类的时候才对它进行加载。 有时连接阶段并不会等加载阶段完全完成之后才开始,而是交叉进行,加载阶段总是在连接阶段之前开始,连接阶段总是在加载阶段完成之后完成。 连接 连接阶段比较复杂,一般会跟加载阶段和初始化阶段交叉进行,这个阶段的主要任务就是做一些加载后的验证工作以及 一些初始化前的准备工作,可以细分为三个步骤:验证、准备和解析。 验证:当一个类被加载之后,必须要验证一下这个类是否合法,保证加载的类是能够被jvm所运行。比如这个类是不是符合字节码的 格式、变量与方法是不是有重复、 数据类型是不是有效、继承与实现是否合乎标准等等。 准备:准备阶段的工作就是为类的 静态变量 分配内存并设为jvm默认的初值,对于非静态的变量,则不会为它们分配内存。

Class基本使用和继承

风格不统一 提交于 2019-12-19 03:09:24
1、类的由来 1.1 下面代码定义了一个“类”,可以看到里面有一个constructor方法,这就是构造方法,而this关键字则代表实例对象。也就是说,ES5 的构造函数Point,对应 ES6 的Point类的构造方法。 Point类除了构造方法,还定义了一个toString方法。 注意,定义“类”的方法的时候,前面不需要加上function这个关键字,直接把函数定义放进去了就可以了。另外,方法之间不需要逗号分隔,加了会报错。 例: class Point { constructor ( x , y ) { this . x = x ; this . y = y ; } toString ( ) { return '(' + this . x + ', ' + this . y + ')' ; } } 2.constructor方法 2.1 constructor方法是类的默认方法 ,通过new命令生成对象实例时,自动调用该方法。一个类必须有constructor方法,如果没有显式定义,一个空的constructor方法会被默认添加。 例: class Point { } // 等同于 Point { constructor ( ) { } } 2.2 上面代码中, 定义了一个空的类Point,JavaScript 引擎会自动为它添加一个空的constructor方法。 3

ES6中class类的使用方法

非 Y 不嫁゛ 提交于 2019-12-19 03:05:11
Class类的使用方法 1.了解什么是类? 2.构造方法 3.实例属性和实例方法 4.静态属性和静态方法 5.super关键字 6.类的继承 1.了解什么是类? 类是具有相同属性和方法的的群体 2.构造方法 constructor方法是类的默认方法,,每当 new 这个类的时候,必会优先执行constructor构造器中的代码; class School{ constructor(){ //代码体 } } 3.实例属性和实例方法 class Student { //构造方法 constructor(name, age, sex) { //实例属性 this.name = name; this.age = age; this.sex = sex; } //实例方法 read() { console.log("hello world" ) } } //实例化对象 var app = new Student('jack',20,'男') 4.静态属性和静态方法 (1)静态属性: 静态属性指的是Class本身的属性,而不是定义在实例对象(this)上的属性。 class Foo { } Foo.prop = 1; Foo.prop // 1 (2)静态方法: 类相当于实例的原型,所有在类中定义的方法,都会被实例继承。如果在一个方法前,加上 static 关键字,就表示该方法不会被实例继承

Swing滑块组件的使用

让人想犯罪 __ 提交于 2019-12-19 01:23:45
滑块是程序中的一种常见组件,比如调节音量的滑块,音乐播放器的进度滑块等。Java Swing中也有滑块组件:JSlider,那么Java的滑块组件要怎么使用呢?接下来我们就来一起学习一下JSlider的使用方法。 一、构造方法 滑块(JSlider)是一个允许用户在有限区间内通过移动滑块来选择值的组件。 构造方法1:JSlider() 创建一个范围在 0~100 且初始值为 50 的水平滑块 构造方法2:JSlider(int orientation) 使用指定的方向创建一个滑块,范围在 0~100 且初始值为 50 orientation:SwingConstants.VERTICAL(垂直方向),SwingConstants.HORIZONTAL(水平方向) 构造方法3:JSlider(int min,int max) 使用指定的最小值和最大值来创建一个水平滑块,初始值等于最小值加上最大值的平均值 构造方法4:JSlider(int min,int max,int value) 用指定的最小值、最大值和初始值创建一个水平滑块 二、常用方法 1、设置滑块最小值: void setMinimum(int min) 2、设置滑块最大值: void setMaximum(int max) 3、设置滑块当前值: void setValue(int n) 4、获取滑块的当前值: int

Java IO学习1:字节流与字符流

倖福魔咒の 提交于 2019-12-19 01:06:19
先来看一下流的概念: 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。 程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。 字节流与字符流 在java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入 和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符流中输出主要是使用Writer类完 成,输入流主要使用Reader类完成。(这四个都是抽象类) 操作流程 在Java中IO操作也是有相应步骤的,以文件操作为例,主要的操作流程如下: 使用File类打开一个文件 通过字节流或字符流的子类,指定输出的位置 进行读/写操作 关闭输入/输出 IO操作属于资源操作,一定要记得关闭 字节流 字节流主要是操作byte类型数据,以byte数组为准,主要操作类就是OutputStream、InputStream 字节输出流:OutputStream OutputStream是整个IO包中 字节输出流的最大父类 ,此类的定义如下: public abstract class OutputStream extends Object implements Closeable,Flushable 从以上的定义可以发现