java写两个类(A,B)要求A类有两个构造方法,私有成员,方法 。B类调用A类方法打印出A类的私有数据/*java中,有两个类A和B,B类中包含有参数构造方法b1和无参数方法b2,
* 那在A类中new个B类对象并调用方法b2 。
* 那么new的时候是不是要加参数?
* 调用方法b2的时候构造方法是不是也调用了?*/
class A{
public A(){
System.out.println("System.out.println--调用无参的B的构造方法");
B b=new B();//如果需要调用B的无参构造方法,则不加参数
System.out.println("System.out.println--调用有参的B的构造方法");
B b2=new B(7);//如果需要调用有参的构造方法 , 则new的时候则添加参数,调用无参构造方法 。
}
}
class B{
public B(){
System.out.println("调用无参构造方法");
}
public B(int b2){
System.out.println("调用有参构造方法");
}
}
public class TestABMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
A a=new A();
}
}
代码如图:
运行结果如图:
Java项目怎样让另一个类中的代码跟这个类里面的代码一起执行1、在Java项目中新建一个类 。然后在调用类中先进行被调用类实例化,然后通过实例化的对象访问 。
2、在Java项目中新建一个类,将该类中需要被调用的方法设置为静态(static),加了static后,就可以用类名直接调用 。然后在调用类中直接通过类名进行访问 。3、这样就可以让Java项目另一个类中的代码跟这个类里面的代码一起执行了 。
用JAVA创建两个类 , 一个学生类,一个班级类,怎样实现班级类中含有学生类的对象数组??通常实体类中,我们会创建子类的List对象在父类中,而非用数组 , 即在班级类中添加如下:
private List学生类 学生类s = new ArrayList学生类();
public get学生类s() { return 班级ID; }
public set学生类s(List学生类 学生类s) { this.学生类s = 学生类s; }
// or replace to your get/set method
不过最好的处理方式不是在班级中创建学生类的对象集,而是和数据库一样,在学生类中添加班级的ID,
private String 班级ID;
public get班级ID() { return 班级ID; }
public set班级ID(String 班级ID) { this.班级 = 班级ID; }
或者:
private 班级 cls;
public getCls() { return cls; }
public setCls(班级 c) { this.cls = c; }
java的代码中如果出现两个类,需要怎么做在不同的package下是允许出现两个名字相同的类的,只要你在引入的时候注意就行了 。但是尽量不要这么做,毕竟有风险
java怎么在一个集合里用两个类的对象我遇到一个问题,我找不到自己解决的正确方法 。
基本上,我有两个对象Object1和Object2,它们都具有相同类型的两个属性:
public class Object1 {
...
private String name;
private String description;
...
Object1 () {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
public class Object2 {
...
private String name;
private String description;
...
Object2 () {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
【java两个类的代码 java两个类写在一起】}
现在显然在示例中,我将它们的属性设置为字符串,但实际上它们是其他类型 。
注意:Object1和Object2实际上是从我需要SOAP服务的XML模型生成的类 。所以我不能修改它们 。
在我的代码中的某些时候,我必须根据不同的因素访问说Object1或Object2的'name'属性 。这一点是一个事件处理程序,因此在一定时间内它会捕获一个用Object1调用的事件 , 而其他时候则用Object2捕获一个事件 。
我的猜测是要制作一个包含这两种类型的类,并公开一个" name"属性和一个" description"属性 。
这样做的标准方法是什么?
您可以为Object1和Object2创建共享接口
大声笑,我喜欢这样的问题,当它们都是相同的OO设计时 , 它们会得出诸如"您得到一个接口 , 您得到一个接口,您得到一个超类,您得到一个抽象超类,这是一个额外的接口"的答案 。都有优点/缺点的成语:)
基本上有两种方法可以做到这一点:
使用公共接口公开getter和setter 。然后,让两个类都实现该接口,并让处理程序使用它 。
如果可能的话(两个对象都尚未扩展其他超类),可以使用抽象超类并将属性以及getter和setter放在此处 。然后,处理程序使用该超类 。
请注意,这两种方法可以组合使用,即为处理程序使用接口,并使用将接口实现为适配器类的抽象超类,即可以在可能时扩展该适配器,或者在无法扩展适配器时仅实现该接口 。
例:
interface Common {
String getName();
}
abstract class CommonAdapter implements Common {
String name;
String getName() {
return name;
}
//setter as well
}
//just extend the adapter and enjoy
class Object1 extends CommonAdapter {
//specific code for Object1
}
//extending not possible, so implement the interface directly
class Object2 extends SomeOtherClass implements Common {
String name;
String getName() {
return name;
}
}
class Handler {
void handle( Common c ) {
c.getName();
...
}
}
更新:
如果生成了类,则可以将这些对象创建为包装器,并将所有调用委派给实际的类,例如
class Object1CommonWrapper implements Common {
Object1 delegate;
String getName() {
return delegate.getName();
}
}
这是理论上最好的方法,完全符合OOP标准 。
那将是最简单的方法,也是最明显的方法,但是我无法处理Object1和Object2 , 因为我是从SOAP消息所需的XML模型中生成它们的 。
您可以定义Object1和Object2都实现的接口 。该接口将包含您需要调用的方法 , 但是每个类都可以以自己的方式实现它们 。
例如 , 它可能看起来像这样:
public interface Describable {
String getName();
String getDescription();
}
public class Object1 implements Describable {
... implements the methods in some way
}
public class Object2 implements Describable {
... implements the methods in another way
}
这样 , 无论需要处理这两种类型的对象的任何代码,都可以将它们称为Describable并利用多态性 。例如:
Describable eventObject = ...get the object...
eventObject.getName();
eventObject.getDescription();
甚至类似:
public void handle(Describable describable) {
describable.getDescription();
... more stuff...
}
该代码不知道(或不在乎)实际上将哪种类型的对象传递给该方法,只是它可以作为Describable与它交互 。
通常,这是Java和OO设计中的一个常见习语 。核心库在各处使用它 。
顺便说一句,继承(即 , 使用公共的基超类)是另一种选择 。请注意,实现继承的技术需要权衡取舍,并且经常被滥用/滥用 。例如,请参见此讨论 。
Object1和Object2实际上是从我需要SOAP服务的XML模型生成的类 。所以我不能碰他们 。
这个细节需要成为问题的一部分; 从根本上改变了您的潜在选择 。
它有点取决于所述方法的行为 。因此 , 如果:
这两个Object1 / Object2都具有与继承有关的那些方法的绝对相同的代码,并具有定义这些字段/方法的超类,并且两个对象对其进行了扩展 。
两个Object1 / object2必须具有相同的方法签名,但必须以不同的方式处理内部逻辑,我将使用定义两个Object1 / 2必须实现的方法签名的接口 。
使用接口或抽象类
public interface CommonObject {
//gettter and setter
}
public Class Object1 implements CommonObject { ... }
public Class Object2 implements CommonObject { ... }
public Class MainClass {
public void someMethod() {
if(someCondition) {
CommonObject obj1 = new Object1();
//use obj1
} else {
CommonObject obj2 = new Object1();
//use obj2
}
}
}
使用工厂模式
制作一个抽象类,让两个类都从中扩展
Object1和Object2实际上是从我需要SOAP服务的XML模型生成的类 。所以我不能碰他们 。
java编译的问题 两个类在同一个包中 源代码如下javac *.java
这样试一下 。
如果你这两个类 , A引用了B类
那么就要选编译出B类 。
如果相互引用了的话,编译那个都是不成功的 , 就用
javac *.java
关于java两个类的代码和java两个类写在一起的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- mysql数据类型装换,mysql更改数据类型
- linux查看匹配值命令,linux系统配置常用命令
- 软件技术毕业设计题目有哪些,软件技术毕业论文题目或毕业设计
- 华硕电脑硬盘怎么连接网络,华硕主板连接硬盘
- mysql5怎么新建表 mysql怎样新建表
- 温度转换二python代码,温度转换的python代码
- 固态硬盘华硕电脑怎么装,固态硬盘华硕电脑怎么装上去
- asp.net源码加密,asp代码加密方法及破解
- mysql表分区怎么设计 mysql分表分区的优缺点