java 封装
发布网友
发布时间:2022-04-25 22:24
我来回答
共5个回答
热心网友
时间:2022-06-18 03:40
public class Student2 {
private String name;
private String age;
private String sex;
private String major;
public Student2(String name, String age) {
super();
this.name = name;
this.age = age;
this.sex = "男";
this.major = "JAVA";
}
public Student2(String name, String age, String sex, String major) {
super();
this.name = name;
this.age = age;
this.sex = sex;
this.major = major;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public String take() {
return "大家好,我叫" + name + ",今年" + age + "岁,性别" + sex + ",专业是" + major;
}
}
student2类
public class Student {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Student2 s1 = new Student2("张三", "18");
Student2 s2 = new Student2("李四", "15", "女", "C++");
System.out.println(s1.take());
System.out.println(s2.take());
}
}
测试方法
结果:
大家好,我叫张三,今年18岁,性别男,专业是JAVA
大家好,我叫李四,今年15岁,性别女,专业是C++
你是要这个东西么
追问“分别以两种方式完成对两个Student2对象的初始化工作”这句是指构造一次,main方法中传值一次,共两次初始化是这个意思吗????
热心网友
时间:2022-06-18 03:41
public class Students2 {
private String name;
private String sex;
private int age;
private String major;
public Students2(String name,int age){
this.sex = "男";
this.major = "Java";
this.name = name;
this.age = age;
}
public Students2(String name,String sex,int age,String major){
this.name = name;
this.sex = sex;
this.age = age;
this.major = major;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
}
热心网友
时间:2022-06-18 03:41
Student2.java
package test;
public class Student2 {
private String name;
private int age;
private String gender;
private String major;
public Student2(String name, int age) {
this(name, age, "男", "java");
}
public Student2(String name, int age, String gender, String major) {
super();
this.name = name;
this.age = age;
this.gender = gender;
this.major = major;
}
public void selfIntroce() {
System.out.println( "我叫" + name + ", " + age + "岁, " + gender + "性, 我的专业是" + major + "。");
}
}
TestStudent2.java
package test;
public class TestStudent2 {
/**
* @param args
*/
public static void main(String[] args) {
Student2 stu = new Student2("张三", 20);
stu.selfIntroce();
stu = new Student2("李四", 19, "女", "C++");
stu.selfIntroce();
}
}
热心网友
时间:2022-06-18 03:42
c#中类的封装、继承和多态,在C#中可使用类来达到数据封装的效果,这样就可以使数据与方法封装成单一元素,以便于通过方法存取数据。除此之外,还可以控制数据的存取方式。面向封装
在C#中可使用类来达到数据封装的效果,这样就可以使数据与方法封装成单一元素,以便于通过方法存取数据。除此之外,还可以控制数据的存取方式。
面向对象程序设计中一般以类作为数据封装的基本单位。类将数据和操作数据的方法结合成一个单位。在设计类时,不希望直接存取类中的数据,而是希望通过方法来存取数据。如此就可以达到封装数据的目的,方便以后维护、升级,也可以在操作数据时多一层判断,提高安全性。
封装还可以解决数据存取权限问题,使用封装可以将数据隐藏起来,形成一个封闭的空间,用户可以设置哪些数据只能在这个空间中使用,哪些数据可以在空间外部使用。如果一个类中包含敏感数据,则有些用户可以访问,有些用户却不能访问。如果不对这些数据的访问加以*,那么后果是很严重的。所以,在编写程序时,要对类的成员使用不同的访问修饰符,从而定义它们的访问级别。
继承
继承是OOP最重要的特性之一。任何类都可以从另外一个类继承,即这个类拥有它所继承类的所有成员。在OOP中,被继承的类称为父类或基类。C#
提供了类的继承机制,但C# 只支持单继承,不支持多重继承,即在C# 中一次只允许继承一个类,不能同时继承多个类。
利用继承机制,用户可以通过增加、修改或替换类中方法对这个类进行扩充,以适应不同的应用要求。利用继承,程序开发人员可以在已有类的基础上构造新类。继承使得类支持分类的概念。在日常生活中很多东西比较有条理,那是因为它们有着很好的层次分类。如果不用层次分类,则要对每个对象定义其所有的性质。使用继承后,每个对象就可以只定义自己的特殊性质。每一层的对象只需定义本身的性质,其他性质可以从上一层继承下来。
在C# 中,接口允许多继承,可以通过继承多个接口来实现类似于C++中的多重继承。
在继承一个基类时,成员的可访问性是一个重要的问题。子类不能访问基类的私有成员,但是可以访问其公共成员。子类和外部代码都可以访问公共成员。这就是说,只使用这两个可访问性,就可以让一个成员被基类和子类访问,同时也可以被外部的代码访问。
为了解决这个问题,C#
还提供了第3种可访问性:protected。只有派生类才能访问protected成员,基类和外部代码都不能访问protected成员。
除了成员的保护级别外,用户还可以为成员定义其继承行为。基类的成员可以是虚拟的,成员可以由继承它的类重写。子类可以提供成员的其他执行代码。这种执行代码不会删除原来的代码,仍可以在类中访问原来的代码,但外部代码不能访问它们。如果没有提供其他执行方式,外部代码就访问基类中成员的执行代码。
虚拟成员不能是私有成员,因为成员不能同时由子类重写,也不能访问它。基类还可以定义为抽象类。抽象类不能直接实例化,要使用抽象类就必须继承这个类,然后再实例化。
多态
继承使得派生与基类的类在方法上有一定的重叠,因此可以使用相同的语法处理从同一个基类实例化的对象。
多态使得子类的实例可以直接赋予基类的变量,不需要进行强制类型转换,直接就可以通过这个变量调用基类的方法。
在派生于同一个类的不同对象上执行任务时,多态是一种极为有效的技巧,使用的代码最少。可以把一组对象放到一个数组中,然后调用它们的方法,这些对象不必是相同类型的对象,在这种情况下多态的作用就体现出来了。当然如果它们都继承自某个类,可以把这些派生类都放到一个数组中。如果这些对象都有同名方法,可以调用每个对象的同名方法。
热心网友
时间:2022-06-18 03:42
看看书本的例子,这个很基础很基础的面向对象的概念