构造方法

Java ------ 构造方法

我与影子孤独终老i 提交于 2020-04-08 11:31:38
一、什么是构造方法 构造方法也称构造器/constructtion -------- 它也是一种方法,不过它比普通方法特殊; 构造方法格式: 【修饰符】 构造方法名 (形式参数){    构造方法体; }   普通方法格式:   【修饰符】返回值类型 方法名 (形式参数){    普通方法体;   }    从上面的构造方法与普通方法的语法格式上 可以很直观的看出 :构造方法没有返回值类型 ,还有一个不同点是 构造方法要以类名为构造方法名 ,所以看一个方法是不是构造方法,看其方法名就能判断。 二、构造方法的作用是什么 构造方法的作用: 1、是通过 new 运算符来创建对象: public class Construction{ public static void main(String[] args){ new Construction (); // 该代码就是使用构造方法创建对象 } }     2、传递参数和对类中属性初始化 1 public class Test18 { 2 3 public static void main(String[] args) { 4 5 Test e = new Test(); 6 // output result: 参数传递 7 // 从结果上可以看到 构造方法的一个作用是 参数传递,当然被调用者中的成员变量也能传递参数: 8 9 Test

黑马程序员_反射

淺唱寂寞╮ 提交于 2020-04-07 19:27:19
 ------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ---------- 反射 1、由来:   程序后期扩展,无源码修改的扩展 2、java.lang.Class  描述.class的类   java.lang.reflect.Constructor 描述构造方法的类   java.lang.reflect.Field  描述成员变量的类   java.lang.reflect.Method  描述成员方法的类 3、实现反射:   A、获取class文件对象         第一种:通过对象获取       Person p=new Person();       Object中getClass(),返回值是Class类型     第二种:       通过类的静态属性class获取      第三种:通过class类的静态方法forName获取       class.forName("包名.Person");//要写全类名   B、获取构造方法     Class类中Constructor[] getConstructors()

java基础加强--反射

余生长醉 提交于 2020-04-07 09:14:33
笔记摘要: 这里主要介绍了java类中的反射技术,其主要是应用在框架中,这里通过介绍和反射相关的几个类:Constructor、Filed、Method类 来 对 它们各自 的反射方式和应用进行了说明,另外还有数组的反射,同时对HashCode和HashSet集合进行了更深层次的理解,其中的 HashSet 集合中出现的内 存泄露问题是值得我们注意的。 一、反射的基石::Class类 Java程序中的各个java类属于同一类事物,描述这类事物的java类名就是Class 1. Class类的各个实例对象: 对应各个类在内存中的字节码,例如Person类的字节码等 2. 字节码: 一个类被类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是类的字节码,不同的类的字节码是不同的,所以它们 在内存中的内容是不同的,这一 个个空间可以分别用一个个的对象来表示,这些对象显然具有相同的类型,这个类型就是Class类型 3. 获取各个字节码对应的实例对象(Class类型)的方法 1> 静态方法,类名.class, 例如System.class Class cls = Person.class ; 2> 用字节码产生的对象获取 getClass(), 例如:new Date( ).getClass 3> Class.forName("类名"); 这种方式可以不用知道原来的类名

.Net学习 第2季01 C#面向对象 基础

邮差的信 提交于 2020-04-07 02:00:06
.Net 视频学习第2季 C#面向对象 面向对象 基础 类是一个模板,不占内存,对象是根据模板生成的具象,占内存。 字段field:数据  方法method:函数  属性property:保护字段,对字段的赋值进行限定(将这部分封装在类中,外界不用理会如何实现)属性的本质就是两个方法 get() / set()  外部(甚至类内部的方法)通过属性对字段进行赋值/读取,get()/set()内部会进行限定,字段永远用private,属性才是public的。 namespace Proj { class Person { private int _age; public int Age {      get { return _age; } set { if (value < 0) { value = 0; } _age = value; } } } } 不写字段,只写属性是可以的,编译器会自动生成与属性对应的字段。写好字段后按ctrl+R+E可以生成对应属性。 创建类的对象(实例化)的关键字 new 非静态=实例,非静态类可以有静态成员,也可以有非静态成员,静态成员用类名调用(例如Console.WriteLine();),非静态成员用类的对象来调用。静态类只能有静态成员。注意成员包括字段、属性和方法。 所以对于一个静态的字段/属性,在非静态方法中用this也是访问不到的

黑马程序员_张孝祥反射详解

喜欢而已 提交于 2020-04-06 08:34:31
------- android培训 、 java培训 、期待与您交流! ---------- 反射: *反射就是把Java类中的各种成分映射成相应的java类。例如,一个Java类中用一个Class类的对象来表示,一个类中的组成部分:成员变量,方法,构造方法,包等等信息也用一个个的Java类来表示,就像汽车是一个类,汽车中的发动机,变速箱等等也是一个个的类。表示Java类的Class类显然要提供一系列的方法,来获得其中的变量,方法,构造方法,修饰符,包等信息,这些信息就是用相应类的实例对象来表示,它们是Field、Method、Contructor、Package等等。 一个类中的每个成员都可以用相应的反射API类的一个实例对象来表示,通过调用Class类的方法可以得到这些实例对象。 Constructor类代表某个类中的一个构造方法 得到某个类的所有构造方法: Constructor[] constructors = Class.forName(“java.lang.String”).getConstructors(); 得到某一构造方法: Constructor constructor = Class.forName(“java.lang.String”).getConstructors(StringBuffer.class); //获得方法时要用到的类型

java反射机制

荒凉一梦 提交于 2020-04-06 07:14:50
在学习java反射机制前我们需要对 java.lang.Class<T> 这个类有较为清楚的认识。   Class 类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。基本的 Java 类型( boolean 、 byte 、 char 、 short 、 int 、 long 、 float 和 double )和关键字 void 也表示为 Class 对象。   Class 没有公共构造方法。 Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。 来源: https://www.cnblogs.com/yangwei20160911/p/5866892.html

Java对象实例化报错:java.lang.InstantiationException: com.bjbde.pay.model.BdModel.BdMemberApiConfig

三世轮回 提交于 2020-04-06 06:48:24
现象 开发中使用实体类创建对象时,报错: java.lang.InstantiationException: com.bjbde.pay.model.BdModel.BdMemberApiConfig 实例化对象的代码 public static <T> T map2Bean(Map<String, Object> source, Class<T> instance) { try { T object = instance.newInstance(); Field[] fields = object.getClass().getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); FieldName fieldName = field.getAnnotation(FieldName.class); if (fieldName != null){ field.set(object,source.get(fieldName.value())); }else { field.set(object,source.get(field.getName())); } } return object; } catch (InstantiationException |

java--反射--黑马程序员

风流意气都作罢 提交于 2020-04-06 05:38:39
------ Java培训、Android培训、iOS培训、.Net培训 、期待与您交流! ------- 反射 主要内容:《获取Class对象的三种方式、获取无参_有参构造方法、获取成员变量、获取成员方法、运行配置文件内容、越过泛型检查、代理模式、动态代理、模版设计模式、装饰模式、 JDK5的新特性、JDK7的新特性 》 1.获取Class对象的三种方式 1.Object类中的:getClass():此方法不是静态的,必须对象的引用调用; 2.class属性:任何的数据类型(包括基本数据类型)都有一个静态的class属性,它可以获取这个类的Class对象; 3.Class类中有个静态方法: Class forName(String className);className要是全名限定的类名(带包名的类名) 常用:第3种; 1 public class Demo { 2 public static void main(String[] args) throws ClassNotFoundException { 3 Student stu = new Student();//会产生:Student对象空间,Class对象空间 4 //方式一:获取Class对象 5 Class stuClass1 = stu.getClass(); 6 //方式二:静态的class属性 7 Class

Java构造器(构造方法/constructor)

旧巷老猫 提交于 2020-04-05 17:06:59
  我们先来看一下什么是构造器: 1、构造器也叫构造方法或构造函数,分为有参构造器和无参构造器; 2、 构造器也是一种方法 ,只不过是一种特殊的方法,它会在对象创建的时候被调用; 3、 构造器最大的作用就是在创建对象的时候进行对象的初始化 ,有参构造器可以实现对象传参(后面会比较着来看有参构造器方便在哪儿了); 4、一个类可以有零个(如果没有自己定义编译器会帮你提供无参构造器)或多个构造器(【重载】不知道重载定义的小伙伴可以先记下概念); 5、构造器不能被子类继承,Java中子类会自动调用父类的构造器(同样,不了解的可以先记下概念或者跳过)   前面既然说了构造器是一种特殊的方法,我们就来看一下构造方法和普通方法的区别: 1、命名:构造器的方法名必须和类名相同,一般方法的方法名在命名规范的情况下可以随便定义。 2、修饰符:构造器不能被static、final、synchronized、abstract和native修饰 3、返回值:构造器没有返回值(但是不需要写void),一般方法要有返回值或者无返回值(void)   来看一下无参构造器的代码,同时看一下无参构造器的情况下(不定义构造器同理)是如何给属性赋值的: 1 package test; 2 3 public class Student01 { 4 //定义属性 5 public String name; 6 public

java反射详解

六月ゝ 毕业季﹏ 提交于 2020-04-01 09:03:03
1.什么是反射 反射是一种间接操作目标对象的机制,在程序程序运行时(动态)获取或者设置对象自身的信息。 只要给定类的名字,就可以通过反射获取类的所有信息,接着便能调用它的任何一个方法和属性。 Java反射就是在运行状态中,对于任意一个类,只要知道类名,就能够得到或者知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。而这也是Java被视为动态(或准动态,为啥要说是准动态,因为一般而言的动态语言定义是程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。)语言的一个关键性质。 2.反射机制的作用 1 )在运行时判断任意一个对象所属的类。(通过 对象.getclass() 可以知道该对象是属于哪个类的) 2 )在运行时判断任意一个类所具有的成员变量和方法。( 类对象.get...方法) 3 )在运行时任意调用一个对象的方法( 对象) 4 )在运行时构造任意一个类的对象 3.反射的步骤 1 //1、通过对象调用 getClass() 方法来获取,通常应用在:比如你传过来一个 Object 2 // 类型的对象,而我不知道你具体是什么类,用这种方法 3   Person p1 = new Person(); 4   Class c1 = p1