ssh实验截图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二.多态和反射部分
1.多态
A.静态多态
packageduotai;
class customer{
private String account;
private String password;
// 三种静态多态爆楼参数个数不同; 参数个数相同类型不同; 个数和类型相同出现的顺序不同
public customer(){
System.out.println("构造函数1");
}
public customer(String account,String password){
System.out.println("构造函数2");
this.account=account;
this.password=password;
}
}
public class JTcustomer{
public static void main(String[] args) {
customer cus1=new customer();//调用构造函数1
customer cus2=new customer("11111","nihao");//调用构造函数2
}
}
B. 动态多态
一般在继承时使用
packageduotai;
abstract class person{
public abstract void printinfo();//定义一个抽象类函数
}
class student extends person{
public void printinfo(){
System.out.println("学生打印");
}
}
class teacher extends person{
public void printinfo(){
System.out.println("老师打印");
}
}
public class DTstudent {
public static void print(person p){
p.printinfo();
}
public static void main(String[] args) {
print(new student());
print(new teacher());
}
}
2.反射
这是一个customer
packagefanshe;
public class customer{
private String account;
private String password;
public customer(){
System.out.println(getString("构造函数1"));
}
public customer(String account,String password){ System.out.println(getString("构造函数2")); this.account=account;
this.password=password;
}
public void printinfo(){
System.out.println(getString("账号")+account+Messages.getString("密码")+password); //$NON-NLS-1$ //$NON-NLS-2$
}
}
进行测试
Text1
String classname=("fanshe.customer");
// 得到类的消息
Class c = Class.forName(classname);
// 得到构造函数
Constructor[] con =c.getConstructors();
for(inti=0;i<=con.length;i++){
System.out.println(("名字:")+con[i].getName());
// 得到参数类型
Class[]para=con[i].getParameterTypes();
for(int j=0;j<=para.length;j++){
System.out.println(para[j].getName());
}
}
// 得到成员函数
Method[] math=c.getMethods();
for(inti=0;i<=math.length;i++){
System.out.println("名字"+math[i].getName());
Class[]para=math[i].getParameterTypes();
for(int j=0;j<=para.length;j++){
System.out.println("得到参数"+para[j].getName());
}
}
}
Text2
packagefanshe;
ng.reflect.Constructor;
ng.reflect.Method;
public class test2 {
public static void main(String[] args) throws Exception {
String classname=("fanshe.customer");
Class c=Class.forName(classname);
Constructor cons=
c.getConstructor(new Class[]{Class.forName("java.long.String"),
Class.forName("java.long.String")});//得到带参数的构造函数
//生成对象
Object obj=cons.newInstance
(new Object[]{"2222","1111"});//表示传入"2222","1111"参数
//调用Object的方法
Method meth=c.getMethod("printinfo", new Class[]{});//得到方法meth.invoke(obj, new Object[]{});
customercus=new customer("2222","1111");
cus.printinfo();
}
}
Text2相当与
customercus=new customer(“2222”,”1111”);
cus.printinfo();