构造方法

Java高级特性--反射详解

不羁岁月 提交于 2019-12-02 05:39:52
本人博客: https://cherishlife.com.cn/blog/22 有兴趣的朋友支持下,谢谢! 概述 在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 java.lang.Class类是进行反射操作的源头所在,所有的反射操作都是通过这个类展开的。 类的声明 public final class Class<T> extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement Class类不能有子类,并且在jdk1.5之后引入了泛型技术(泛型在反射之中是非常糟糕的)。 这个类从jdk1.0开始提供的,这个类中的构造方法并不能被直接使用,而要想取得反射类的实例化对象,在Java里提供有三种类型: 1. 利用Object类之中的getClass()方法 方法:public final Class<?> getClass(),表示所有类的实例化对象都可以调用此方法。 Date date = new Date(); Class<?> cls = date.getClass(); System.out.println(cls); 在任何的开发中

python学习笔记之--继承

江枫思渺然 提交于 2019-12-02 05:35:20
#继承:子类具备所有父类的共有变量和共有方法(除私有的) 如果子类没有定义__init__构造方法,会自动调用父类的。 好处:站在老爸的肩膀上,增加属性,增加方法 在原有的基础上进行扩展。 class Person: count = 0 #类变量 nation = "中国" def __init__(self,name,gender): self.name = name self.gender = gender Person.count +=1 print("创建了一个新的人") def get_name(self):#实例方法,必须要实例化 return self.name class ChinaPerson(Person): #如果子类没有定义__init__构造方法 #会自动调用父类的。 def __init__(self,name,gender): Person.__init__(self,name,gender) #调用父类的构造函数:类名+构造函数 def get_gender(self): return self.gender cp = ChinaPerson("吴老师","男") print(cp.count) print(cp.name) print(cp.gender) print(cp.get_name()) C:\Users\dell\Desktop\练习

Java 字节流操作1

断了今生、忘了曾经 提交于 2019-12-02 05:26:53
 转自: https://www.cnblogs.com/yangming1996/p/6549800.html   在java中我们使用输入流来向一个字节序列对象中写入,使用输出流来向输出其内容。C语言中只使用一个File包处理一切文件操作,而在java中却有着60多种流类型,构成了整个流家族。看似庞大的体系结构,其实只要使用适合的方法将其分门别类,就显得清晰明了了。而我准备将其按照处理文件类型的不同,分为字节流类型和字符流类型。共两篇文章,本篇从字节流开始。主要包含以下内容: InputStream/OutPutStream - - -字节流基类 FileInputStream/FileOutputStream - - - - -处理文件类型 ByteArrayInputStream/ByteArrayOutputStream - - - -字节数组类型 DataInputStream/DataOutputStream - - - -装饰类 BufferedInputStream/BufferedOutputStream - - - -缓冲流 一、基类流 其实始终有人搞不清楚到底InputStream是读还是OutputStream是读。其实很简单就可以记住,你把你自己想象为是一个程序,InputStream对你来说是输入,也就是你要从某个地方读到自己这来

关于Java中代码块的总结

久未见 提交于 2019-12-02 04:56:42
局部代码块:在方法内使用,代码块中定义的变量在外部无法访问。 package lesson11; public class Demo01 { public static void main(String[] args) { //局部代码块 在方法中出现 { int i=10; System.out.println("局部代码块"); } //System.out.println(i); 访问不到 for(int i=0;i<10;i++){ //局部代码块 System.out.println(i); } } } 构造代码块:在方法外使用,每当创建一个对象调用构造方法时都会先执行构造代码块中的内容。 package lesson12; public class Demo01 { public static void main(String[] args) { //构造代码块 类外出现 Person p1 = new Person(); Person p2 = new Person("xiaoming",30); } } class Person{ String name; int age; public Person(){ System.out.println("我是无参的"); } public Person(String name,int age){ this.name =

Java之路---Day09(继承)

五迷三道 提交于 2019-12-02 03:55:37
2019-10-23-22:58:23 目录   1.继承   2. 区分成员变量重名的方法   3. 区分成员方法重名的方法   4. 继承中重写与重载的区别   5. 继承中覆盖重写的注意事项   6. 继承中覆盖重写的设计原则   7. 父子类构造方法的特点   8. Super关键字的三种使用方法   9. This关键字的三种用法   10. Super和This关键字图解 继承   继承: 是 面向对象 软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。 继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。   注意:     1.继承是多态的前提,如果没有继承就没有多态     2.在继承关系中,"子类就是一个父类",也就是说,子类可以被当作父类看待   作用:继承主要解决的问题就是 共性抽取   子类特点:     1.子类可以拥有父类的"内容"     2.子类还可以拥有自己专有的内容   Java中继承的三个特点:     1.单继承     2.多级继承     3.多种继承(俗话就是有很多子孙)   继承的格式:     定义父类的格式:(普通类的定义)       public class 父类名称{         语句体       }     定义子类的格式:       public class 子类名称

10.21 继承与多态动手动脑

。_饼干妹妹 提交于 2019-12-02 03:40:18
1. 运行 TestInherits.java 示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是否是第一句,影响重大! class Grandparent { public Grandparent() { System.out.println("GrandParent Created."); } public Grandparent(String string) { System.out.println("GrandParent Created.String:" + string); } } class Parent extends Grandparent { public Parent() { //super("Hello.Grandparent."); System.out.println("Parent Created"); // super("Hello.Grandparent."); } } class Child extends Parent { public Child() { System.out.println("Child Created"); } } public class TestInherits { public static void main

枚举enum

北慕城南 提交于 2019-12-02 03:27:42
枚举 Enum 1.7+ enum 默认继承Object 跟Enum enum 里面的枚举值各自只有一份.enum是不能new出来的。 会默认一个无参的构造方法,如果自定义一个构造方法,则不会默认创建无参的构造方法。 构造方法是private (switch中key的值也可以是enum) 来源: https://www.cnblogs.com/sunzhiqiang/p/11728860.html

动手动脑--类与对象

怎甘沉沦 提交于 2019-12-02 03:27:36
1.继承条件下的构造方法调用 class Grandparent { public Grandparent() { System.out.println("GrandParent Created."); } public Grandparent(String string) { System.out.println("GrandParent Created.String:" + string); } } class Parent extends Grandparent { public Parent() { //super("Hello.Grandparent."); System.out.println("Parent Created"); // super("Hello.Grandparent."); } } class Child extends Parent { public Child() { System.out.println("Child Created"); } } public class TestInherits { public static void main(String args[]) { Child c = new Child(); } } 通过 super 调用基类构造方法,必须是子类构造方法中的第一个语句。 2.子类父类拥有同名时 package

木卯先生的笔记---Date类、DateFormat类和Calendar类

和自甴很熟 提交于 2019-12-02 03:23:49
1.Date类 1.1 简介 Date类是 java.util 包下面的类,表示特定的瞬间,精确到毫秒。 1.2 方法 1.2.1 Date () 构造方法 public Date() :分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。 1 /*Date类的空参数构造方法 2 Date()获取的就是当前系统的日期和时间 3 */ 4 private static void demo01() { 5 Date date = new Date(); 6 System.out.println(date); 7 } 1.2.2 Date (long date) public Date(long date) :分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。 1 private static void demo01() { 2 Date date = new Date(556235456000L); 3 System.out.println(date);//Tue Aug 18 06:50:56 CDT 1987 4 } 1.2.3 getTime() public long getTime() : 把日期对象转换成对应的时间毫秒值。 1 private

子类继承父类,代码执行顺序的介绍

自作多情 提交于 2019-12-02 03:17:10
今天看到一道面试题: 父类: package test; public class FatherClass { public FatherClass() { System.out.println("FatherClass Create"); } } 子类: package test; import test.FatherClass; public class ChildClass extends FatherClass { public ChildClass() { System.out.println("ChildClass Create"); } public static void main(String[] args) { FatherClass fc = new FatherClass(); ChildClass cc = new ChildClass(); } } 请问输出的结果是什么? 答案 FatherClass Create FatherClass Create ChildClass Create 这道题考察的是关于子类继承父类代码执行顺序的问题 首先,创建一个对象,就要调用其构造方法,来初始化成员函数和成员变量。子类拥有父类的成员变量和成员方法,所以子类必须调用父类的构造方法,否则从父类继承过来的成员变量和成员方法得不到正确的初始化