如何通过方法替换java中的电子邮件
我第一次尝试这个。我需要能够为子类学生和子类教师替换电子邮件输入电子邮件后,我有一个父类和父类,这是我认为我需要添加我的changeEmail方法的地方。我可能离这里有一段距离,但我可以使用stringBuilder吗?或者有更简单的方法吗?说到这个,真是个傻瓜如何通过方法替换java中的电子邮件,java,Java,我第一次尝试这个。我需要能够为子类学生和子类教师替换电子邮件输入电子邮件后,我有一个父类和父类,这是我认为我需要添加我的changeEmail方法的地方。我可能离这里有一段距离,但我可以使用stringBuilder吗?或者有更简单的方法吗?说到这个,真是个傻瓜 子类- public class Teacher extends Member { private String qualifications; public Teacher(String name, String
子类-
public class Teacher extends Member
{
private String qualifications;
public Teacher(String name, String email, String qualifications)
{
super(name, email);
this.qualifications = qualifications;
}
public String getQualifications()
{
return qualifications;
}
public String toString()
{
StringBuffer details = new StringBuffer();
details.append(super.getName());
details.append(' ');
if(qualifications != null && qualifications.trim().length() > 0) {
details.append("(" + qualifications + ")");
details.append(' ');
}
details.append(super.getEmail());
return details.toString();
}
public class Student extends Member
{
private int attendance;
public Student(String name, String email)
{
super(name, email);
this.attendance = 0;
}
public int getAttendance()
{
return attendance;
}
public void markAttendance(int attendance)
{
this.attendance += attendance;
}
public void print()
{
System.out.println(super.getName() + " (" + attendance + ")");
}
}
}
子类-
public class Teacher extends Member
{
private String qualifications;
public Teacher(String name, String email, String qualifications)
{
super(name, email);
this.qualifications = qualifications;
}
public String getQualifications()
{
return qualifications;
}
public String toString()
{
StringBuffer details = new StringBuffer();
details.append(super.getName());
details.append(' ');
if(qualifications != null && qualifications.trim().length() > 0) {
details.append("(" + qualifications + ")");
details.append(' ');
}
details.append(super.getEmail());
return details.toString();
}
public class Student extends Member
{
private int attendance;
public Student(String name, String email)
{
super(name, email);
this.attendance = 0;
}
public int getAttendance()
{
return attendance;
}
public void markAttendance(int attendance)
{
this.attendance += attendance;
}
public void print()
{
System.out.println(super.getName() + " (" + attendance + ")");
}
}
超类-
public class Member
{
private String email;
private String name;
public Member(String name, String email)
{
this.name = name;
this.email = email;
}
public String getEmail()
{
return email;
}
public String getName()
{
return name;
}
public String changeEmail()
{
//..........
}
}
因为changeEmail是超类中的一个公共方法,所以子类也可以访问它<代码>学生(以及
教师
)是成员
public String changeEmail(String newEmailAddress) {
String old = email;
this.email = newEmailAddress;
return old;
}
我更改的是添加一个参数(字符串newEmailAddress),然后将新值设置为电子邮件实例字段
(编辑:我更新了答案以返回旧的电子邮件地址。我不知道为什么这样的方法会返回任何东西,但无论如何…)这就是所谓的继承,基本上如果您有一些共享变量,您可以使用某个父类,并使用关键字
extends
创建一些子类
继承父类的所有子类都可以有自己的类变量,但也有父变量
在你的例子中,你可以这样想象图表——很明显,不是吗?
所以。。。
父类成员具有以下类变量:
-字符串:邮件
-字符串:名称
您有两个子类-Student
和Teacher
:
Teacher
class变量:
- 资格
- 邮件,名称(从父级继承!)
学生
班级变量:
- 出席
- 邮件,名称(从父级继承!)
注意-使用关键字super
您正在从家长处调用构造函数(或简单地“class”其他方法),因此在Teacher
和Student
类中,您将调用以下方法:
public Member(String name, String email) {
this.name = name;
this.email = email;
}
Teacher teacher1 = new Teacher("foo", "foo@foo.foo", "whateverFoo");
teacher1.changeEmail("someNewFoo@foo.foo"); //parent method
teacher1.changeEmailWithReturnOld("someNewFoo@foo.foo"); //Child method
要更改电子邮件,您需要以下内容
1) 在父类中实现方法
2) 可选-添加对子类的调用,对于在类之外的使用,还可以添加一些外部方法(如果没有外部方法,您仍然可以使用公共父类方法)
例如
在父级中
public void changeEmail(String newEmail) {
this.email = newEmail;
}
public String changeEmailWithReturnOld(String newEmail) {
String oldMail = this.email;
changeEmail(newEmail); //calling above
return oldMail;
}
在儿童中
public String changeTheMailWithReturnOld(String newMail) {
return super.changeEmailWithReturnOld(newMail); //super means super class, parent
}
清楚吗?:)
然后您可以调用以下命令:
public Member(String name, String email) {
this.name = name;
this.email = email;
}
Teacher teacher1 = new Teacher("foo", "foo@foo.foo", "whateverFoo");
teacher1.changeEmail("someNewFoo@foo.foo"); //parent method
teacher1.changeEmailWithReturnOld("someNewFoo@foo.foo"); //Child method
我不确定我是否理解。因此,您只需在Member
中的changemail
方法中添加相关代码即可?那就是this.email=email代码>。嗨,是的,我不知道我需要在changeEmail中添加什么才能在输入和程序运行后更改学生或教师的电子邮件。这有点夸张。。但是请随意接受答案:)注意,该方法的定义是使用字符串类型的返回值,因此您必须添加返回语句-例如旧的或新的e-mail@xxxvodnikxxx你是对的。有点快。我不知道那里应该归还什么??我不知道,除了无效的返回类型对我来说没有任何意义:D,但让我说,旧邮件是好的,例如,对于一些存档或任何东西,可以