
正文
java实现类的代码实例 java写一个类
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java中如何以给定的字符串为名字创建某个类的实例?
可以用反射根据给定的类名来动态生成实例
比如你定义了一个类
package sample;
/**
* Created by pseudo on 15-9-16.
*/
public class TestClass {
private String name;
public TestClass(String name) {
this.name = name;
}
@Override
public String toString() {
return "TestClass{" +
"name='" + name + '\'' +
'}';
}
}
然后使用如下代码创建这个类的一个实例
public static void main(String[] args) throws Exception{
//加载要反射的类
Class clz = Class.forName("sample.TestClass");
//找到类的构造方法
Constructor constructor = clz.getDeclaredConstructor(String.class);
//使用找到的构造方法创建实例
Object instance = constructor.newInstance("Lilei");
System.out.println(instance);
}
这个instance就是需要的结果
相关问答
Q1: 用java实现类和对象的反射,代码最好有注释,谢谢
给你一个小的实例代码:
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
public class test {
public static void main(String args[]) throws NoSuchMethodException,
IllegalAccessException, InvocationTargetException {
Foo foo = new Foo("这个一个Foo对象!");
Class clazz = foo.getClass();
Method m1 = clazz.getDeclaredMethod("outInfo");
Method m2 = clazz.getDeclaredMethod("setMsg", String.class);
Method m3 = clazz.getDeclaredMethod("getMsg");
m1.invoke(foo);
m2.invoke(foo, "重新设置msg信息!");
String msg = (String) m3.invoke(foo);
System.out.println(msg);
}
}
class Foo {
private String msg;
public Foo(String msg) {
this.msg = msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getMsg() {
return msg;
}
public void outInfo() {
System.out.println("这是测试Java反射的测试类");
}
}
Q2: java程序,抽象类实现,求具体代码
package test;
/**
*
* @author JinnL
*父类抽象类
*/
public abstract class Car {
//转弯
abstract void turn();
//启动
abstract void start();
void what(){
System.out.println("this is "+this.getClass().getSimpleName());
}
public static void main(String[] args) {
/**
* 方法入口
*/
Car[] cars ={new Bicycle(),new Automobile(),new GasAutomobile(),new DieselAutomobile()};
for (Car car : cars) {
car.start();
}
}
}
class Bicycle extends Car{
@Override
void turn() {
System.out.println("this is "+this.getClass().getSimpleName());
}
@Override
void start() {
System.out.println("this is "+this.getClass().getSimpleName());
}
void what(){
}
}
class Automobile extends Car{
@Override
void turn() {
System.out.println("this is "+this.getClass().getSimpleName());
}
@Override
void start() {
System.out.println("this is "+this.getClass().getSimpleName());
}
}
class GasAutomobile extends Automobile{
//重写start turn
@Override
void turn() {
System.out.println("this is "+this.getClass().getSimpleName());
}
@Override
void start() {
System.out.println("this is "+this.getClass().getSimpleName());
}
}
class DieselAutomobile extends Automobile{
@Override
void start() {
System.out.println("this is "+this.getClass().getSimpleName());
}
void what(){
System.out.println("this is "+this.getClass().getSimpleName());
}
}
Q3: 求关于JAVA的实现类的程序
抽象类imp
abstract class imp { //抽象类
public abstract void youName(); //你的名字
public abstract void youNameAndAge(); //你的名字和年龄
}
用户类User
public class User {
String name;
int age;
public User(){}
public User(String name){ //构造方法
this.name = name;
}
public User(String name, int age){ //即是构造方法又是方法重载
this.name = name;
this.age = age;
}
}
用户A类基础抽象类
public class A extends imp{ //A类继承抽象类
public void youName() { //重写了父类的youName方法
User user = new User("A");
System.out.println("我的名字叫:"+user.name);
}
public void youNameAndAge() { //重写了父类的youNameAndAge方法
User user = new User("A",18);
System.out.println("我叫:"+user.name+",今年"+user.age+"岁");
}
}
用户B类继承抽象类
public class B extends imp{ //B类继承抽象类
public void youName() { //重写了父类的youName方法
User user = new User("B");
System.out.println("我的名字叫:"+user.name);
}
public void youNameAndAge() { //重写了父类的youNameAndAge方法
User user = new User("B",19);
System.out.println("我叫:"+user.name+",今年"+user.age+"岁");
}
}
测试类
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("你叫什么名字?");
imp a = new A();
a.youName();
imp b = new B();
b.youName();
System.out.println("你叫什么名字芳龄多少?");
a.youNameAndAge();
b.youNameAndAge();
}
}
Q4: Java如何实现多个类引用同一个类的实例
Java多个类引用同一个类的实例,可以用单例实现
运行结果如下:
代码如下:
class Single{
private static Single object;
private Single(){}
public static Single getObject(){
if(object==null) object=new Single();
return object;
}
}
class A{
public static Single getObject(){
return Single.getObject();
}
}
class B{
public static Single getObject(){
return Single.getObject();
}
}
public class Test {
public static void main(String[] args){
if(A.getObject()==B.getObject())
System.out.println("类A和类B引用了同一个类的实例");
}
}
关于java实现类的代码实例和java写一个类的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







