构造方法

python基础学习笔记(十)

会有一股神秘感。 提交于 2020-04-01 02:09:16
魔法方法、属性 ------------------------ 准备工作 为了确保类是新型类,应该把 _metaclass_=type 入到你的模块的最开始。 class NewType(Object):   mor_code_here class OldType:   mor_code_here 在这个两个类中NewType是新类,OldType是属于旧类,如果前面加上 _metaclass_=type ,那么两个类都属于新类。 构造方法 构造方法与其的方法不一样,当一个对象被创建会立即调用构造方法。创建一个python的构造方法很简答,只要把init方法,从简单的init方法,转换成魔法版本的_init_方法就可以了。 class FooBar: def __init__(self): self.somevar = 42 >>> f =FooBar() >>> f.somevar 42 重写一个一般方法 每一个类都可能拥有一个或多个超类(父类),它们从超类那里继承行为方法。 class A: def hello(self): print 'hello . I am A.' class B(A):   pass >>> a = A() >>> b = B() >>> a.hello() hello . I am A. 因为B类没有hello方法,B类继承了A类,所以会调用A

雷林鹏分享:Java 变量类型

故事扮演 提交于 2020-03-30 15:04:58
  在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:   type identifier [ = value][, identifier [= value] ...] ;   格式说明:type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。   以下列出了一些变量的声明实例。注意有些包含了初始化过程。   int a, b, c; // 声明三个int型整数:a、 b、c。   int d = 3, e, f = 5; // d声明三个整数并赋予初值。   byte z = 22; // 声明并初始化z。   double pi = 3.14159; // 声明了pi。   char x = 'x'; // 变量x的值是字符'x'。   Java语言支持的变量类型有:   局部变量   成员变量   类变量   Java局部变量   局部变量声明在方法、构造方法或者语句块中;   局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;   访问修饰符不能用于局部变量;   局部变量只在声明它的方法、构造方法或者语句块中可见;   局部变量是在栈上分配的。   局部变量没有默认值,所以局部变量量被声明后,必须经过初始化,才可以使用。   实例1   在以下实例中age是一个局部变量

十三、多线程

情到浓时终转凉″ 提交于 2020-03-29 12:02:14
1、实现线程的两种方式 (1)继承Thread类   Thread构造方法:public Thread(String threadName)            public Tread()   重写run()方法,并调用start()执行线程。   语法:public static void main(String [] args){         new ThreadTest().start();       } (2)实现Runnable接口   语法:public class Thread extends Object implements Runnable   实现Runnable接口会创建Thread对象,并将Runnable对象和Thread对象相关联。   Thread构造方法:public Thread(Runnable r)            public Thread(Runnable r,String name)   步骤:1)建立Runnable对象      2)使用参数为Runnable对象的构造方法创建Thread实例。      3)调用start()方法启动线程。   创建Runnable对象:编写一个实现Runnable接口的类,然后实例化该类的对象。 2、线程的生命周期 (1)出生状态:调用start()前 (2)就绪状态

java基础之反射---重要

我的未来我决定 提交于 2020-03-28 08:41:18
java反射: 反射是框架设计的灵魂 (使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码)); 1:获取Class字节码文件对象的三种方式: 2 /** 3 * 获取Class对象的三种方式 4 * 1 Object ——> getClass(); 5 * 2 任何数据类型(包括基本数据类型)都有一个“静态”的class属性 6 * 3 通过Class类的静态方法:forName(String className)(常用) 7 * 8 */ 9 public class Fanshe { 10 public static void main(String[] args) { 11 //第一种方式获取Class对象 12 Student stu1 = new Student();//这一new 产生一个Student对象,一个Class对象。 13 Class stuClass = stu1.getClass();//获取Class对象 14 System.out.println(stuClass.getName()); 15 16 //第二种方式获取Class对象 17 Class stuClass2 = Student.class; 18 System.out.println(stuClass == stuClass2);/

java反射详解

血红的双手。 提交于 2020-03-28 07:21:27
来源: Java基础之—反射(非常重要) 反射是框架设计的灵魂 使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码) 一、反射的概述 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象. 以上的总结就是什么是反射 反射就是把java类中的各种成分映射成一个个的Java对象 例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象。 (其实:一个类中这些成员方法、构造方法、在加入类中都有一个类来描述) 如图是类的正常加载过程:反射的原理在与class对象。 熟悉一下加载的时候: Class对象的由来是将class文件读入内存,并为之创建一个Class对象。 其中这个Class对象很特殊。我们先了解一下这个Class类 二、查看Class类在java中的api详解 如何阅读java中的api详见java基础之——String字符串处理 Class 类的实例表示正在运行的 Java

Java反射

时光怂恿深爱的人放手 提交于 2020-03-28 07:20:27
主要参考这篇文章 https://blog.csdn.net/sinat_38259539/article/details/71799078 什么是反射? JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 反射就是把java类中的各种成分映射成一个个的Java对象: 例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象 类对象 每个类在第一次被调用时,都会被jvm创建类对象(因此只会有一个类对象),并加载到jvm内存.我们可以通过类对象来实现java反射的功能,即在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性 怎么获取类对象? 三种方法: Student stu = new Student("张三"); //第一种, 通过getClass()方法 Class clz1 = stu.getClass(); //第二种,通过class属性 Class clz2 = Student.class; //第三种,通过类的全名 Class clz3 = Class.forName("com.test

Java中日期处理

三世轮回 提交于 2020-03-27 18:16:20
主要涉及到 java.util.Calendar; java.util.Date; java.sql.Date; java.sql.Time; java.sql.Timestamp; 其中java.util.Date;是java.sql.Date; java.sql.Time; java.sql.Timestamp;的父类 1. Calendar 1.1 获取Calendar   单例获取: Calendar calendar = Calendar.getInstance();   多态获取: Calendar calendar = new GregorianCalendar(); 1.2 设置日期时间     当得到一个Calendar的实例之后,该实例存储的就是当前的时间(默认时区或者构造的时候指定时区),如果要更改此日期时间,则 可以使用set()方法:   如:   set(int year, int month, int date)   set(int year, int month, int date, int hourOfDay, int minute, int second)等一系列重载的方法。 cal.set(2099,9,22,23,59,59); Date date4 = cal.getTime();     这里要注意在使用Calender的set(

2. 类与对象 & 构造方法与初始化

人走茶凉 提交于 2020-03-27 12:13:24
类与对象的关系: 类是对一类对象的描述 对象是类的具体实例(对象==实例) [public] [abstract | final] class 类名 [extends 超类] [implements 接口列表] { 数据成员声明及初始化; 方法成员声明及方法体; } 以上是类声明语法 [ ] 外面的都不能省。 对象声明与创建: 创建类的实例(对象),通过对象使用类的功能。 * 使用对象之前,先声明指向它的引用变量。 例子:Table aTable;     aTable = new Table(); 解释:Table是已经声明的类名,声明引用变量aTable,用于存储该类对象的引用;声明一个引用变量时并没有生成对象。     第二行创建对象,new的作用时:在内存中为Table类的对象分配内存空间;让对象返回它的引用(aTable)。 对象初始化: 系统在生成对象时,会为对象分配内存空间,并自动调用构造方法对实例变量进行初始化。 构造方法: 用来初始化对象,每个类都需要有构造方法。分为默认构造方法和自定义构造方法。 默认构造方法: 没有参数,方法体为空; 使用默认的构造方法初始化对象时,如果在类声明中没有给实例变量赋初值,则对象的属性值为0或null。 一个默认构造方法的例子: class BankAccount { String ownerName; int

Java 反射相关整理

╄→гoц情女王★ 提交于 2020-03-26 19:04:42
1. Class 类 Class 是一个类,封装了当前对象所对应的类的信息,一个类中有属性,方法,构造器等。 对于每个类而言,JRE 都为其保留一个不变的 Class 类型的对象。一个 Class 对象包含了特定某个类的有关信息。 Class 对象只能由系统建立对象,一个类(而不是一个对象)在 Java 虚拟机中只会有一个 Class 实例。 Class 对象的由来是将 class 文件读入内存,并为之创建一个 Class 对象。 获取 Class 类对象的三种方法 使用 Class.forName 静态方法,当知道类的全路径名时,可以使用该方法获取 Class 类对象。 Class clz = Class.forName("java.lang.String"); 使用 .class 方法,这种方法适合在编译前就知道操作的 Class。 Class clz = String.class; 使用类对象的 getClass() 方法。 String str = new String("Hello"); Class clz = str.getClass(); Class 类的常用方法 方法名 功能说明 static Class forName(String name) 返回指定类名 name 的 Class 对象。 Object newInstance() 调用缺省构造函数,返回该

Java 对象初始化

点点圈 提交于 2020-03-25 08:46:25
对象A的创建过程: 1. 构造器实际上是静态方法。当首次创建对象A 或者 A类的静态方法/静态域首次被访问时,Java解释器查找类路径,以定位 A.class文件。(当程序创建第一个对类的静态成员的应引用时,类会被动态加载到JVM中) 2. 载入A.class,有关静态初始化的所有动作都会执行。因此,静态初始化只在Class对象首次加载的时候进行一次。 3. 当用new A()创建对象时,首先在堆上为A对象分配足够的存储空间。 4. 这个存储空间会被清零,这样就自动将A对象的所有基本类型数据设置成了默认值,引用则被设置成了null。 5. 执行所有出现于字段定义处的初始化工作。 6. 执行构造器。 属性、方法、构造方法和自由块都是类中的成员,在创建类的对象时,类中各成员的执行顺序: 1. 父类静态成员和静态初始化快,按代码出现的顺序依次执行。 2. 子类静态成员和静态初始化块,按代码出现的顺序依次执行。 3. 父类的实例成员和实例初始化块,按代码出现的顺序依次执行。 4. 父类的构造方法(如果没有明确指出调用某个父类的构造器,就会默认调用父类默认构造器,如果不存在默认构造器,编译器会出 错) 5. 子类实例成员和实例初始化块,按代码出现的顺序依次执行。 6. 子类的构造方法。 编写构造器的一条有效准则:(Java编程思想第四版中文P163) “用尽可能简单的方法使对象进入正常状态