java类与对象的创建方法
- 格式:doc
- 大小:48.50 KB
- 文档页数:2
java创建对象的四种方法在Java中,创建对象有四种主要方法:1. 构造函数创建:这是最常见的方法,用于初始化对象。
当你创建一个对象时,Java会自动调用这个对象的构造函数。
例如:```javapublic class MyClass {private int x;public MyClass(int x) {this.x = x;}}MyClass myObject = new MyClass(5); // 创建MyClass对象并初始化```2. new关键字:你可以使用new关键字手动创建一个对象实例。
这个关键字在调用一个类的无参构造函数时不需要任何参数,但如果需要创建对象实例化类的方法(比如有一个有参数的构造函数),则需要传递参数。
例如:```javaMyClass myObject = new MyClass(); // 无参构造函数,对象初始化完成,自动调用构造方法MyClass myObject2 = new MyClass(5); // 传递参数到有参构造函数,创建并初始化对象```3. 工厂方法:你可以定义一个工厂方法,用于创建并返回对象的实例。
这通常在接口中定义一个抽象方法,实现类提供该方法的实现。
工厂方法的具体实现可能根据不同的需求而变化。
例如:```javapublic interface MyFactory {MyClass createObject();}public class MyClassFactory implements MyFactory {public MyClass createObject() {return new MyClass();}}```然后你可以使用工厂方法创建对象:```javaMyFactory factory = new MyClassFactory();MyClass myObject = factory.createObject(); // 使用工厂方法创建对象实例```4. 静态工厂方法:这是另一种创建对象的方式,通过静态工厂方法可以更方便地创建对象实例。
java中object创建实例Java中Object创建实例在Java中,Object是所有类的父类。
因此,创建Object实例是Java编程中的基础操作之一。
本文将介绍Java中创建Object实例的方法。
1. 使用new关键字创建Object实例使用new关键字可以创建Object实例。
例如,下面的代码创建了一个Object实例:```Object obj = new Object();```这个代码创建了一个名为obj的Object实例。
这个实例可以用来调用Object类中定义的方法,例如toString()和equals()。
2. 使用Class类的newInstance()方法创建Object实例Java中的Class类提供了一个newInstance()方法,可以用来创建Object实例。
例如,下面的代码使用Class类的newInstance()方法创建了一个Object实例:```Class<?> clazz = Object.class;Object obj = clazz.newInstance();```这个代码创建了一个名为obj的Object实例。
这个实例可以用来调用Object类中定义的方法,例如toString()和equals()。
3. 使用Constructor类的newInstance()方法创建Object实例Java中的Constructor类提供了一个newInstance()方法,可以用来创建Object实例。
例如,下面的代码使用Constructor类的newInstance()方法创建了一个Object实例:```Constructor<?> constructor = Object.class.getConstructor(); Object obj = constructor.newInstance();```这个代码创建了一个名为obj的Object实例。
java 泛型创建实体对象并调用方法下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!Java 泛型:创建实体对象并调用方法1. 引言在现代编程中,泛型是一种强大的工具,它允许我们编写通用的代码,从而提高代码的重用性和可读性。
java对象的创建和使用Java是一种面向对象的编程语言,其中对象是它的特别之处。
在Java中,对象包含数据和方法,它们被封装在一起,以便程序可以操作它们。
那么,如何创建和使用Java对象呢?这是本文的主题。
1. 创建Java对象在Java中,我们可以通过new关键字来创建对象。
如下所示:``` Person p = new Person(); ```上面这行代码创建了一个Person类型的对象并将其赋值给变量p。
在这里,new运算符告诉Java在堆上创建一个新的Person对象,并返回该对象的引用。
变量p保存了该引用。
Java编译器会根据类定义来创建对象。
Java类通常定义了对象的状态和行为。
对象状态是由成员变量表示的。
成员变量是在类中定义的变量。
成员变量存储了对象的状态。
对象行为是由方法表示的。
方法是在类中定义的函数。
方法执行操作并返回结果。
2. 访问对象的成员变量和方法创建对象后,我们可以通过引用变量来访问对象的成员变量和方法。
如下所示:``` Person p = new Person(); = "Tom"; p.age = 20; System.out.println();System.out.println(p.age); p.sayHello(); ```上面这段代码访问了Person对象的name、age成员变量和sayHello方法。
我们可以通过点运算符来访问对象的成员变量和方法。
在这里, = "Tom"将字符串值“Tom”存储在Person对象的name成员变量中。
p.age = 20将整数值20存储在Person对象的age成员变量中。
System.out.println()和System.out.println(p.age)分别打印出Person对象的name和age成员变量的值。
p.sayHello()调用了Person对象的sayHello方法。
java 对象的创建过程Java是一种面向对象的编程语言,对象是Java程序的基本构建单元。
在Java中,对象的创建过程包括类的定义、实例化、构造方法的调用和内存分配等步骤。
本文将详细介绍Java对象的创建过程。
一、类的定义在Java中,对象的创建首先需要定义类。
类是对象的模板,定义了对象的属性和行为。
类可以包含成员变量、方法和构造方法等成员。
成员变量用于描述对象的属性,方法用于描述对象的行为。
构造方法是一种特殊的方法,用于初始化对象的成员变量。
类的定义通常包括类名、成员变量、方法和构造方法等部分。
二、实例化对象的实例化是指根据类的定义创建对象的过程。
在Java中,使用关键字"new"来实例化对象。
通过"new"关键字可以调用类的构造方法创建对象,并返回对象的引用。
实例化一个对象需要指定类名和构造方法的参数。
三、构造方法的调用构造方法是一种特殊的方法,用于初始化对象的成员变量。
在Java 中,每个类都至少有一个构造方法。
当实例化一个对象时,会调用该类的构造方法。
构造方法的名称与类名相同,没有返回值。
构造方法可以有参数,用于传递初始化对象所需的数据。
通过构造方法可以给对象的成员变量赋初始值。
四、内存分配在Java中,对象的创建需要在内存中分配空间。
Java的内存分配是由Java虚拟机(JVM)自动完成的。
当调用"new"关键字创建对象时,JVM会在堆内存中分配一块空间,用于存储对象的成员变量和方法。
同时,JVM会自动管理对象的生命周期,包括内存的分配和释放。
五、对象的初始化对象的初始化是指在对象创建完成后,对对象的成员变量进行赋值的过程。
在Java中,对象的成员变量可以在定义时赋初值,也可以在构造方法中赋值。
对象的初始化可以根据实际需求进行,可以通过构造方法传入参数,也可以通过调用对象的成员方法进行。
六、对象的使用对象创建完成后,可以通过对象的引用来访问对象的成员变量和方法。
java创建类的5种⽅式1、使⽤new关键字 } →调⽤了构造函数这种⽅式,我们可以调⽤任意的构造函数(⽆参的和带参数的)。
2、使⽤Class类的newInstance⽅法 } →调⽤了构造函数使⽤Class类的newInstance⽅法创建对象。
这个newInstance⽅法调⽤⽆参的构造函数创建对象。
3、使⽤Constructor类的newInstance⽅法 } →调⽤了构造函数和Class类的newInstance⽅法很像, ng.reflect.Constructor类⾥也有⼀个newInstance⽅法可以创建对象。
我们可以通过这个newInstance⽅法调⽤有参数的和私有的构造函数。
4、使⽤clone⽅法 } →没有调⽤构造函数⽆论何时我们调⽤⼀个对象的clone⽅法,jvm就会创建⼀个新的对象,将前⾯对象的内容全部拷贝进去。
⽤clone⽅法创建对象并不会调⽤任何构造函数。
要使⽤clone⽅法,我们需要先实现Cloneable接⼝并实现其定义的clone⽅法。
5、使⽤反序列化 } →没有调⽤构造函数当我们序列化和反序列化⼀个对象,jvm会给我们创建⼀个单独的对象。
在反序列化时,jvm创建对象并不会调⽤任何构造函数。
为了反序列化⼀个对象,我们需要让我们的类实现Serializable接⼝代码demo1package javatest.demo;23import java.io.Serializable;45public class PrintTest implements Cloneable, Serializable {67public static final long serivalVersion = 1L;89private String name;1011public PrintTest() {12 System.out.println("this is Constructor");13 }1415public void hello() {16 System.out.println("hello ");17 }1819 @Override20public int hashCode() {21final int prime = 31;22int result = 1;23 result = prime * result + ((name == null) ? 0 : name.hashCode());24return result;25 }2627 @Override28public boolean equals(Object obj) {29if (this == obj)30return true;31if (obj == null)32return false;33if (getClass() != obj.getClass())34return false;35 PrintTest other = (PrintTest) obj;36if (name == null) {37if ( != null)38return false;39 } else if (!name.equals())40return false;41return true;42 }4344 @Override45public String toString() {46return "PrintTest [name=" + name + "]";47 }4849 @Override50protected Object clone() throws CloneNotSupportedException {51// TODO Auto-generated method stub52return super.clone();53 }5455public String getName() {56return name;57 }5859public void setName(String name) { = name;61 }6263 }测试类1package javatest.demo;23import java.io.FileInputStream;4import java.io.FileOutputStream;5import java.io.ObjectInputStream;6import java.io.ObjectOutputStream;7import ng.reflect.Constructor;89/**10 * 创建⼀个类的⼏种⽅法?11 *12 * @author BrokenColor13 * @date 2018年6⽉7⽇14*/15public class InstanceDemo {1617public static void main(String[] args) {1819// 使⽤new关键字} →调⽤了构造函数20 System.out.println("=================new关键字:");21 PrintTest printtest1 = new PrintTest();22 printtest1.setName("printtest1");23 System.out.println(printtest1 + ",hashcode:" + printtest1.hashCode());24 printtest1.hello();25try {26// 使⽤Class类的newInstance⽅法} →调⽤了构造函数27 System.out.println("=========Class类的newInstance⽅法:");28 PrintTest printtest2 = (PrintTest) Class.forName("javatest.demo.PrintTest").newInstance(); 29//或者可以30// PringtTest pringttest2 = PringtTest.class.newInstance();31 printtest2.setName("printtest2");32 System.out.println(printtest2 + ",hashcode:" + printtest2.hashCode());33 printtest2.hello();3435// 使⽤Constructor类的newInstance⽅法 } →调⽤了构造函数36 System.out.println("=======Constructor类的newInstance⽅法:");37 Constructor<PrintTest> constructor = PrintTest.class.getConstructor();38 PrintTest printTest3 = (PrintTest) constructor.newInstance();39 printTest3.setName("printTest3");40 System.out.println(printTest3 + ",hashcode:" + printTest3.hashCode());41 printTest3.hello();4243// 使⽤clone⽅法 } →没有调⽤构造函数44 System.out.println("=======使⽤clone⽅法 } →没有调⽤构造函数");45 PrintTest printTest4 = (PrintTest) printTest3.clone();46 printTest4.setName("printTest4");47 System.out.println(printTest4+",hashcode:"+printTest4.hashCode());4849//序列化50 ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("data.obj"));51 out.writeObject(printTest4);52 out.close();5354// 使⽤反序列化 } →没有调⽤构造函数55 System.out.println("===========使⽤反序列化");56 ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));57 PrintTest printTest5 = (PrintTest) in.readObject();58 printTest5.setName("printTest5");59 System.out.println(printTest5+",hashcode:"+printTest5.hashCode());60 printTest5.hello();6162 } catch (Exception e) {63// TODO Auto-generated catch block64 e.printStackTrace();65 }6667 }6869 }运⾏类运⾏结果:。
java基础-类的定义、成员变量、⽅法、对象的创建与使⽤⼀.JAVA类的定义 JAVA⾥⾯有class关键字定义⼀个类,后⾯加上⾃定义的类名即可。
如这⾥定义的person类,使⽤class person定义了⼀个person类,然后在person这个类的类体⾥⾯定义person这个类应该具有的成员变量(即属性)和⽅法,如这⾥定义的int id和int age这个两个成员变量,或者叫属性,这个id表⽰⼈的⾝份证号码,⼈应该具有这个属性,age表⽰⼈的年龄,这也是⼈应该具有的。
这样就在person这个类⾥⾯定义了两个⼈应该有的属性,接下来就是定义⽅法了,这⾥定义了三个⽅法,分别是getAge()、setAge(int i)和getId(),分别⽤来获取⼈的年龄,设置⼈的年龄,获取⼈的id,getAge()⽅法获取了⼈的年龄后,将获取到的值返回,所以使⽤了return age语句,getId()⽅法也使⽤了return id语句⽤于返回获取到的id的值。
⼆. 成员变量 在JAVA⾥⾯的任何变量⾸先应该要声明,然后再赋值,然后再使⽤。
成员变量和局部变量有⼀个重要区别:成员变量在类⾥⾯声明时如果不进⾏初始化,那么JAVA会默认给它初始化,⽽局部变量JAVA不会默认给它初始化,所以在⽅法⾥⾯声明⼀个局部变量如果不给它初始化时就会出错。
默认初始化⼤多数都是0,boolean类型的为false,引⽤类型的为null,如过不记得JAVA对成员变量默认的初始化是多少的话,那就这样做,定义⼀个成员变量,不给它初始化,然后直接打印这个成员变量,打印出来的结果就是JAVA默认的初始化的值。
三、Java⾯向对象的基本概念——引⽤ 引⽤类型和基本类型有着巨⼤的区别,当声明⼀个int i=0时,系统会马上给这个i分配⼀个内存空间(在栈内存⾥⾯分配⼀⼩块区域⽤来装数字0),⾥⾯装着⼀个值为0,以后使⽤i这个名字马上就可以访问这个内存空间⾥⾯的值,这就是基本数据类型,所以基础类型就只占⼀块内存。
java如何创建类⼀、⾸先我们要弄清楚什么是类?什么是对象?类——是抽象的。
是具有共同属性和服务的对象的抽象(或集合),其内部包括属性和服务两个主要部分;对象——是具体的。
是系统中⽤来描述客观事物的⼀个实体,它是构成系统的⼀个基本单位。
类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,⽽对⼀类对象的抽象就是类。
⼆、类的定义 1.Java中定义类的通⽤格式:修饰符 class 类名{成员} 理解:修饰符是可选的,有public(公共)或不加; class——关键词,必须有; 类名——⾸字母⼤写,且按驼峰命名规则起名,必须有; 成员——有成员属性和成员⽅法,下⾯会详细讲解。
三、成员(fields)定义 1.成员属性定义 格式:[ public | private | protected ] [ static ] [ final ] 类型 成员名 理解:类型和成员名是必须的,其他都是可选项; public 公共成员——不同包也可访问; private 私有成员——只能在本类中访问; protected 保护成员——同包及⼦类可访问; 上⾯三个都不加 默认——同包可访问; static 静态成员——属于类的,它不属于具体的对象,该类的所有对象共享该成员。
所有不是static的对象的对象都要实例化才能访问。
Static成员或⽅法直接通过类名访问(通过:类名. 引⽤); final 成员——最终成员,其值不能被改变; final 类——最终类,不能被继承; final ⽅法——最终⽅法,该⽅法不能被重写; 注意:final和public可以加载类上⾯,⽽static不能。
2.成员⽅法定义 格式:[public|private|protected] [static] [final] 类型⽅法名(形参){ ⽅法体; return表达式; }理解: 类型(⾸字母⼤写)(必须):指返回值的类型(既可以是基本类型,也可以是对象类型); ⽅法名 (必须):做什么; ⽅法体:定义了⽅法的具体内容,通常起到两个作⽤:⼀是围绕类的属性进⾏各种操作,⼆是与其他的类与对象进⾏数据交流、消息传递的操作; 形参(可选):只有两种类型:基本类型和对象类型。
创建对象的3种方式在Java编程中,有许多种方式可以创建对象。
通常来说,创建对象需要使用new运算符,然后调用类的构造方法。
下面将介绍3种不同的创建对象的方式:一、使用new运算符这是最常用的创建对象的方式。
使用new运算符可以在内存中动态地分配空间,创建一个对象的实例。
这种方式可以通过类的构造方法来初始化对象的成员变量和属性。
举例来说,下面的代码就是使用new 运算符创建了一个名为person的Person对象:Person person = new Person();二、使用反射技术Java中的反射技术可以在运行时动态地获取类的信息,并且可以使用该信息创建类的实例。
这种方式通过Class类的newInstance()方法来创建对象。
例如,下面的代码演示了使用反射技术创建Person对象:Class<?> clazz = Class.forName("Person");Person person = (Person) clazz.newInstance();三、使用工厂模式工厂模式是一种创建对象的设计模式。
它通过一个工厂类来创建对象实例,而不直接使用new运算符创建对象。
工厂模式可以隐藏对象的实现细节,使得客户端代码更容易维护和扩展。
例如,下面的代码展示了使用工厂模式创建Person对象:public interface PersonFactory {public Person createPerson();}public class SimplePersonFactory implements PersonFactory {public Person createPerson() {return new Person();}}PersonFactory factory = new SimplePersonFactory();Person person = factory.createPerson();综上所述,以上介绍了3种不同的创建对象的方式,包括使用new运算符、反射技术和工厂模式。
java⼊门---对象和类概念详解实例Java作为⼀种⾯向对象语⾔。
⽀持以下基本概念:多态继承封装抽象类对象实例⽅法重载这篇⽂章,我们主要来看下:对象:对象是类的⼀个实例(对象不是找个⼥朋友),有状态和⾏为。
例如,⼀条狗是⼀个对象,它的状态有:颜⾊、名字、品种;⾏为有:摇尾巴、叫、吃等。
类:类是⼀个模板,它描述⼀类对象的⾏为和状态。
下图中男孩⼥孩为类,⽽具体的每个⼈为该类的对象:现在让我们深⼊了解什么是对象。
看看周围真实的世界,会发现⾝边有很多对象,车,狗,⼈等等。
所有这些对象都有⾃⼰的状态和⾏为。
拿⼀条狗来举例,它的状态有:名字、品种、颜⾊,⾏为有:叫、摇尾巴和跑。
对⽐现实对象和软件对象,它们之间⼗分相似。
软件对象也有状态和⾏为。
软件对象的状态就是属性,⾏为通过⽅法体现。
在软件开发中,⽅法操作对象内部状态的改变,对象的相互调⽤也是通过⽅法来完成。
接下来,我们来看下类。
类可以看成是创建Java对象的模板,通过下⾯⼀个简单的类来理解下Java中类的定义:public class Dog{String breed;int age;String color;void barking(){}void hungry(){}void sleeping(){}}⼀个类可以包含以下类型变量:局部变量:在⽅法、构造⽅法或者语句块中定义的变量被称为局部变量。
变量声明和初始化都是在⽅法中,⽅法结束后,变量就会⾃动销毁。
成员变量:成员变量是定义在类中,⽅法体之外的变量。
这种变量在创建对象的时候实例化。
成员变量可以被类中⽅法、构造⽅法和特定类的语句块访问。
类变量:类变量也声明在类中,⽅法体之外,但必须声明为static类型。
⼀个类可以拥有多个⽅法,在上⾯的例⼦中:barking()、hungry()和sleeping()都是Dog类的⽅法。
然后我们来看下构造⽅法。
每个类都有构造⽅法。
如果没有显式地为类定义构造⽅法,Java编译器将会为该类提供⼀个默认构造⽅法。
在Java编程中,循环创建大量对象是一个常见的需求,尤其是在处理大规模数据或进行复杂计算时。
本文将从多个角度探讨如何在Java中高效地循环创建大量对象的方法。
1. 对象创建方式的选择在Java中,对象的创建方式有多种,包括直接new对象、使用静态工厂方法、使用构造器模式等。
针对循环创建大量对象的情况,我们需要选取适合的对象创建方式,以提高性能和减少内存占用。
对于简单对象,直接new对象是最直接的方式,但对于复杂对象,可以考虑使用静态工厂方法或构造器模式,以避免重复创建对象。
2. 对象池技术的应用对象池(Object Pool)是一种常见的对象复用技术,通过预先创建一定数量的对象,并在需要时从池中获取对象,使用完毕后再将对象放回池中以供其他代码使用。
通过对象池技术,可以减少对象创建和销毁的开销,提高对象的复用率,从而提高系统性能。
3. 内存优化和垃圾回收在循环创建大量对象时,需要特别注意内存的使用情况和垃圾回收机制。
及时释放不再使用的对象,避免内存泄漏和过多的垃圾对象,可以通过弱引用、软引用等方式优化内存的使用,避免因大量对象创建导致内存溢出的情况。
4. 并发情况下的对象创建在多线程并发情况下,循环创建大量对象可能会引发线程安全和性能问题。
可以通过使用线程安全的对象池、避免共享对象或使用不可变对象等方式来解决并发情况下的对象创建问题,以保证系统的稳定性和性能。
总结回顾在Java中,循环创建大量对象是一个常见的需求,通过选择合适的对象创建方式、应用对象池技术、优化内存和垃圾回收、处理并发情况等方法,可以高效地解决循环创建大量对象的问题。
需要根据具体的业务场景和性能需求,灵活选取适合的优化策略,以达到最佳的性能和内存利用。
个人观点和理解在实际的Java开发中,循环创建大量对象是一个常见但也比较容易出现性能问题的地方。
通过对比和分析不同的对象创建方式、应用对象池技术等方法,可以在一定程度上提高系统的性能和稳定性。
创建对象的四种方式
创建对象是面向对象编程中的一个重要概念。
在Java中,创建对象有四种方式:使用new 关键字、使用反射机制、使用克隆方法和使用反序列化。
第一种方式是使用new关键字,它是最常见的创建对象的方式。
通过new关键字可以实例化一个类,并且可以调用该类的构造方法进行初始化。
第二种方式是使用反射机制,它可以在运行时动态地创建对象。
通过Class类的newInstance()方法可以实例化一个类,并且可以调用该类的构造方法进行初始化。
第三种方式是使用克隆方法,它可以复制一个已有对象的状态,创建一个新的对象。
需要实现Cloneable接口,并且重写Object类的clone()方法。
第四种方式是使用反序列化,它可以将一个对象从字节流中读取出来,并且创建一个新的对象。
需要实现Serializable接口,并且使用ObjectInputStream类的readObject()方法。
以上是Java中创建对象的四种方式,每种方式都有其适用的场景和注意事项。
在实际开发中,需要根据具体情况选择合适的方式来创建对象。
Java类和对象简单的例子代码1. 简介在Java编程中,类和对象是非常重要的概念。
类是对象的模板,可以用来创建对象。
对象是类的实例,它可以拥有自己的属性和行为。
通过类和对象的使用,我们可以实现面向对象编程的思想,使我们的程序更加模块化和易于维护。
2. 创建类下面是一个简单的Java类的例子:```javapublic class Car {String brand;String color;int maxSpeed;void displayInfo() {System.out.println("Brand: " + brand);System.out.println("Color: " + color);System.out.println("Max Speed: " + maxSpeed);}}```在这个例子中,我们创建了一个名为Car的类。
该类有三个属性:brand、color和maxSpeed,并且有一个方法displayInfo用来展示车辆的信息。
3. 创建对象要创建Car类的对象,我们可以使用以下代码:```javaCar myCar = new Car();```这行代码创建了一个名为myCar的Car对象。
我们使用关键字new 来实例化Car类,并且将该实例赋值给myCar变量。
4. 访问对象的属性一旦我们创建了Car对象,我们就可以访问它的属性并为其赋值。
例如:```javamyCar.brand = "Toyota";myCar.color = "Red";myCar.maxSpeed = 180;```这些代码展示了如何为myCar对象的属性赋值。
我们可以使用点号操作符来访问对象的属性。
5. 调用对象的方法除了访问对象的属性,我们还可以调用对象的方法。
我们可以使用以下代码来展示myCar对象的信息:```javamyCar.displayInfo();```这行代码会调用myCar对象的displayInfo方法,从而展示该车辆的信息。
java 根据类型创建对象的方法在Java中,可以使用反射机制根据类型创建对象。
以下是一个示例代码:```javaimport ;public class CreateObjectByType {public static void main(String[] args) throws Exception {// 获取Person类的Class对象Class<?> clazz = ("");// 获取Person类的无参构造函数Constructor<?> constructor = ();// 创建Person对象Object obj = ();// 设置属性值("setName", ).invoke(obj, "张三");("setAge", ).invoke(obj, 20);// 输出属性值(("getName").invoke(obj));(("getAge").invoke(obj));}}```在上面的代码中,我们首先使用()方法获取Person类的Class对象。
然后,使用Class对象的getConstructor()方法获取Person类的无参构造函数。
接着,使用Constructor对象的newInstance()方法创建Person对象。
最后,使用Class对象的getDeclaredMethod()方法获取Person类中的setName()和setAge()方法,并使用Method对象的invoke()方法设置属性值和输出属性值。
类与对象的创建与使用方法
//声明RectTest类
class RectTest{
public static void main(String args[]){
Rect rect1=new Rect();
System.out.println("矩形1的信息"+rect1.toString());
Rect rect2=new Rect(33,44);
System.out.println("矩形2的信息"+rect2.toString());
rect1 = rect2;
System.out.println("矩形1的信息"+rect1.toString());
System.out.println("矩形1的周长: "+rect1.getPerimeter());
System.out.println("矩形1的面积: "+rect1.getArea());
System.out.println("矩形2的周长: "+rect2.getPerimeter());
System.out.println("矩形2的面积: "+rect2.getArea());
}
}
//声明矩形类Rect
class Rect {
private float length; //矩形的长度
private float width; //矩形的宽度
public Rect(){ //默认构造方法
length=0;
width=0;
}
public Rect(float l, float w){ //带参数的构造方法
length=l;
width=w;
}
public void setLength(float l){ //改变矩形的长度
length=l;
}
public float getLength(){ //得到矩形的长度
return length;
}
public void setWidth(float w){ //改变矩形的宽度
width=w;
}
public float getWidth(){ //得到矩形的宽度
return width;
}
public String toString(){ //输出矩形信息
return ("长度: "+length+", 宽度:"+width);
}
public float getPerimeter(){ //得到矩形的周长
return 2*(length + width);
}
public float getArea(){ //得到矩形的面积
return length * width ;
}
}
先定义一个图书类Book,它封装了:
5个成员变量:
strName//表示书名
strAuthors //表示作者
strPress //表示出版社
strISBN //表示ISBN
fPrice //表示价格
12个成员方法:
Book(String name, String authors, String press, String isbn, float price) //构造方法
getName() //获取书名
getAuthors() //获取作者
getPress() //获取出版社
getISBN() //获取ISBN
getPrice() //获取价格
toString() //输出图书的各项信息
setName() //设置书名
setAuthors() //设置作者
setPress() //设置出版社
setISBN() //设置ISBN
setPrice() //设置价格
接着再定义一个类BookTest,用来使用Book类,具体如下:
在BookTest类的main()方法中创建一个图书对象bk1,它的各项内容依次为”Java程序设计入门”、“王伟东”、“吉林电子出版社”、“7-900393-11-0/H·415”、“55.0”,然后输出bk1的各项信息。