构造方法

第九章 继承、抽象类

旧时模样 提交于 2020-01-14 05:04:31
继承 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如公司中的研发部员工和维护部员工都属于员工,程序中便可以描述为研发部员工和维护部员工继承自员工,同理,JavaEE工程师和Android工程师继承自研发部员工,而维网络维护工程师和硬件维护工程师继承自维护部员工。这些员工之间会形成一个继承体系,具体如下图所示。 在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类所有可继承的属性和方法。 继承的格式&使用 格式: class 子类 extends 父类 {} 继承的好处&注意事项 1、继承的出现提高了代码的复用性,提高软件开发效率。 2、继承的出现让类与类之间产生了关系,提供了多态的前提。 注意事项 1、在Java中,类只支持单继承,不允许多继承. 2、多个类可以继承一个父类 3、在Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类 4、子类不能继承父类的私有成员 5、子类不能继承父类的构造方法,但是可以通过super去访问 6、不要为了部分功能而去继承,必须要符合 is a 的关系 继承中的成员关系 A:成员变量 a:子类的成员变量名称和父类中的成员变量名称不一样,这个太简单 b

原型模式

穿精又带淫゛_ 提交于 2020-01-14 02:26:12
原型模式 定义: 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型: 创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件: 实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛出CloneNotSupportedException异常。 重写Object类中的clone方法。Java中,所有类的父类都是Object类,Object类中有一个clone方法,作用是返回对象的一个拷贝,但是其作用域protected类型的,一般的类无法调用,因此,Prototype类需要将clone方法的作用域修改为public类型。 原型模式是一种比较简单的模式,也非常容易理解,实现一个接口,重写一个方法即完成了原型模式。在实际应用中,原型模式很少单独出现。经常与其他模式混用,他的原型类Prototype也常用抽象类来替代。 实现代码: class Prototype implements Cloneable { public Prototype clone(){ Prototype prototype = null;

This在构造方法中的作用

空扰寡人 提交于 2020-01-14 01:50:14
当局部变量和成员变量重名时,方法中会根据“就近原则”使用局部变量的值 如果想要区分的话可以使用this关键字 格式: this.成员变量名 this可以理解为当前使用的对象或者正在创建的对象,通过那个对象调用的方法谁就是this this: 1.可以修饰属性、方法、构造方法 2.this可以理解为当前使用的对象或者正在创建的对象,通过那个对象调用的方法谁就是this 3.可以在构造方法中通过“this(形参)”的方式调用本类中调用其他重载的构造方法 注意:在构造方法内部必须写在首行 Person类 public class Person { private String name ; //自己的名字 private int age ; public void setName ( String name ) { this . name = name ; } public void setage ( int age ) { this . age = age ; } public String getName ( ) { return name ; } public int getage ( ) { return age ; } //打招呼 public void sayHello ( String name1 ) { //对方的名字 System . out . println (

Dart 反射

江枫思渺然 提交于 2020-01-14 00:52:16
Dart汇总请点击 这里 在Dart中,symbol用来反射库中的元数据 使用反射 新建Animal.dart,输入以下内容: library animal_lib ; class Animal { walk ( ) { print ( 'animals can walk' ) ; } sleep ( ) { print ( 'animals need to sleep' ) ; } eat ( ) { print ( 'animals need to eat' ) ; } } class Person extends Animal { work ( ) { print ( 'a person need to work for money' ) ; } } 新建AnimalSymbol.dart,输入以下内容: import 'dart:core' ; import 'dart:mirrors' ; import 'Animal.dart' ; main ( ) { Symbol lib = new Symbol ( 'animal_lib' ) ; Symbol className = new Symbol ( 'Animal' ) ; // 像是上面的编译时常量也可以写成:Symbol className = #Animal; // print(#s == new Symbol

Java学习

心不动则不痛 提交于 2020-01-13 20:58:22
基本语法 编写Java程序时,应注意以下几点: 大小写敏感 :Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。 类名 :对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。 方法名 :所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。 源文件名 :源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。 主方法入口 :所有的Java 程序由 public static void main(String []args) 方法开始执行。 编译运行: javac 文件名 java 类名 Java 教程 Java 教程 Java 简介 Java 开发环境配置 Java 基础语法 Java 对象和类 Java 基本数据类型 Java 变量类型 Java 修饰符 Java 运算符 Java 循环结构 Java 分支结构 Java Number & Math 类 Java Character 类 Java String 类 Java StringBuffer Java 数组 Java 日期时间 Java 正则表达式 Java 方法 Java

六、关键字

别等时光非礼了梦想. 提交于 2020-01-13 05:43:26
4.关键字: (1)this:this是一个关键字,存储了当前对象的内存地址 -->this对象,用来访问本类自己的属性和方法。 -->构造器中,给属性set值。 【1】 使用本类的属性 ,this.属性名, this可以省略不写 【2】 调用本类的方法 this.方法名() ,this可以省略不写 【3】 调用本类的构造方法, 要求必须是构造方法中的第一句代码 this()—》调用本类的无参构造方法 this(实参列表)调用本类的带参构造方法 【4】 当局部变量与成员变量名称相同时,this代表成员变量 (2)continue:跳出本次循环继续下一次循环; break:跳出循环体,继续执行循环外的函数体;在switch...case中终止与下一个case的比较; (3) return: 跳出整个函数体,函数体后面的部分不再执行。 (4)final关键字: 修饰类:final修饰的类不能被继承,其中的属性可以自由定义类型,但是其中的方法默认被final,不能修改。(除非真的不想其被继承,出于安全问题,一般不设置为final); 修饰方法:如果只有在想明确禁止 该方法在子类中被覆盖的情况下才将方法设置为final的。 修饰属性:基本数据类型:值不能被修改,固定值。引用数据类型:在栈内存中的存储的地址不变, 对于一个final变量,如果是基本数据类型的变量

Java反射机制

 ̄綄美尐妖づ 提交于 2020-01-13 04:36:05
一切的操作都将使用Object完成,类,数组的引用都可以使用Object来接收 1,认识Class类 以前要是想知道一个类中的属性,成员变量,方法等等的信息的话,需要通过new这个类的对象才能得到这些信息,但是在Java中,也允许一个实例化对象找到一个类的完整的信息,这个类就是Class类,Class类是继承Object类的. 正常方式: 引入需要的"包.类"名称 -->通过new实例化-->取得实例化对象 反射方式: 实例化对象-->getClass()方法(从Object类中继承而来),这里是得到Class类对象-->得到完整的"包.类"名称 getClass()这个方法的返回值是Class类,实际上该类是Java反射的源头 在 Class类中没有定义构造方法 ,那么得到Class类对象的方法有3种: (1)使用forName()的静态方法实例化对象 (2) 类.class (3)对象.getClass() package cn.reflect; class Demo{ } public class RefDemo01 { public static void main(String[] args) throws ClassNotFoundException { Class c1 = Class.forName("cn.reflect.Demo"); Class c2 =

09 : 构造方法 & 代码块

瘦欲@ 提交于 2020-01-12 21:56:26
构造方法 概念 构造方法是一种特殊的方法,它是一个 与类同名 的方法 对象的创建就是通过构造方法来完成. 其功能主要是 完成对象的创建 或者 对象的初始化 当类实例化new一个对象时会 自动调用构造方法 构造方法和其他方法一样也可以 重载(方法名相同+参数列表不同) 形式 可以无参也可以有参 修饰符 类名([参数列表]){ 代码…… } this 概念 this代表本类对象的一个引用对象 默认执行了(可省略) Class(本类) this =new Class(); 形式 this.name=name; 代码块 { } 静态代码块(优先加载且加载一次) 构造代码块(提取共性代码) 在类的内部,方法外部,的代码块 通常用于抽取 构造方法中的共性代码 每次调用构造方法前都会调用构造代码块new new new 优先于构造方法加载 测试 局部代码块(控制变量作用范围) 在方法里面的代码块 通常用于控制变量的作用范围,出了括号就失效 变量的范围越小越好,成员变量会有线程安全问题 测试 来源: https://www.cnblogs.com/aqin1012/p/12184536.html

从零开始的java学习Day15----------基础篇(IO流)

旧城冷巷雨未停 提交于 2020-01-12 05:39:05
IO流 我们电脑中的数据,都是一个个二进制数字(字节)组成,我们传输数据,就可以看做是一种数据的流动,以内存为基准按照流动的方向,就分为输入流(流向内存)和输出流(输出内存)。输入也叫做读取数据,输出也叫做写出数据,这就是IO流 I:input(输入) O:output(输出) IO的分类 按照数据的流向分为: 输入流:把数据从其他设备上读取到内存中的流。 输出流:把数据从内存 中写出到其他设备上的流 按照数据类型分为: 字节流 :以字节为单位,读写数据的流。 字符流 :以字符为单位,读写数据的流。 顶级父类 字节流:字节输入流(InputStream) 字节输出流(OutputStream) 字符流:字符输入流(Reader) 字符输出流(Writer) 字节流 字节输出流OutputStream OutputStream是所有字节输出流的超类,将指定字节信息写出到目的地,他里面定义了字节输出流的基本共性方法。 常用方法: void close ( ) :关闭此输出流并释放与此流相关联的任何系统资源。 void flush ( ) :刷新此输出流并强制任何缓冲的输出字节被写出。 abstract void write ( int b ) :将指定的字节输出到输出流(自动转为字符型) void write ( byte [ ] b ) :将指定字节数组内元素依次输出到输出流

Lombok

半腔热情 提交于 2020-01-11 16:08:02
Production Date : 2020-01-11 v1.0.0 https://projectlombok.org/features/all @Getter and @Setter 使用 @Getter 或 @Setter 注释任意属 性可以自动生成默认的 getter和 setter 方法. @ToString 可以使用 @ToString 注释任何类定义,会自动生成 toString 方法的实现.它默认会打印类名以及每个字段,按照顺序并用逗号进行分割. @EqualsAndHashCode @EqualsAndHashCode可以生成 equals和hashCode方法 的实现. @NoAragsConstructor, @RequiredArgsConstructor, @AllArgsConstructor @NoAragsConstructor 将自动生成一个 无参构造方法 , @AllArgsConstructor则生成一个 全参构造方法 . @RequiredArgsConstructor生成一个包含 标识了NonNull 的变量的构造方法 @Data 使用此注解可以一次性的将@Getter,@Setter,@ToString,@EqualsAndHashCode和@RequiredArgsConstructor全部实现. @Builder