私有化(公司上班)
接口不能直接实例化
4:55 new 实现类的类名()就可以创建一个新的对象了!
而new HashSet()是专门为Set接口实例化的一个办法,因为HashSet是Set接口的一个实现类!
接口可以看成一个特殊的类,虽然接口并不是类,但是接口和类的程序结构都是一样的,只是类型不一样而已,因为作用不一罢了。所以类可以被实现,接口也同样可以被实现。
只不过,类被实现时,直接用new 类名()即可,而接口想要被实现,不能直接new 接口名()。而是要通过new 接口的一个实现类名()来进行实现;
public Student(String id,String name){
this.id=id;
this.name=name;
把所选课程的属性也就是coerses进行一个初始化,然而这个set只是一个接口不能够直接实例化 可以通过HashSet对courses进行一个实例化 this.courses=new HashSet();
package lmr; import java.util.Set; public class Student{ public String id; public String name; public Set courses; public Student(String id,String name){ this.id = id; this.name = name; this.courses = new HashSet(); } }
package lmr; public class Student{ public String id; public String name; public Set courses; }
package lmr public class Student{ public String id; public String name; public Set course; public Student(String id,String name){ this.id = id; this.name = name; this.course = new HashSet(); } }
package lmr; public class Course{ public String id; public String name; public Course(String id,String name){ this.id = id; this.name = name; } }
1、Set是一个接口通过“this.course=new HashSet()”进行实例化,使用时导入java.util包。
2、创建属性时,一般开发用私有
private String id;
public String getId(){
return id;
}
public void setId(String id){
this.id=id;
}
*学生的可选择的课程信息存放在 Set 类型的属性 courses 中 。
*在构造器中将 courses 进行初始化(实例化)this.courses=new HashSet();
*Set 是一个接口,所以不能直接实例化,通过 HashSet 这个实现类来进行实例化 ,需要导入包;
*在实际开发中,应该把所有的属性都私有化,然后通过get 和 set 来访问属性。
Set不能直接实例化 因为是一个接口
HashSet是Set接口重要的实现类
实际开发中属性多是私有,通过get set去访问属性
属性为set类型
类中元素构造方法中都需要实例化
qqqqq
public Set courses;//把课程信息存放在set类型的属性里,util.Set包
this.courses=new HashSet();//util.HashSet
不能直接实例化Set,因为Set是一个接口,需要通过HashSet进行实例化
导包快捷:Eclipse中Ctrl+Shift+O
public class Student{ public String id; public String name; public Set courses; public Student(String id,String name){ this.id=id; this.name=name; this.courses=new HashSet(); }}
区分测试以及实际操作中的一些细节问题
java限定符:
public class Student{
public String id;
public String name;
public Set courses;
public Student(String id,String name){
this.id=id;
this.name=name;
this.courses=new HashSet();
}
}
public class Student{
public String id;
public String name;
public Set courses;
public Student(String id,String name){
this.id=id;
this.name=name;
this.courses=new HashSet();
}
}
public class Course{
public String id;
public String name;
public Course(String id,String name){
this.id=id;
this.name=name;
}
}
HashSet
导包快捷:Eclipse中Ctrl+Shift+O
关于为什么要创建含参构造器的问题:
123456789 | public class Course{ public String id; public String name; //含参构造器 public Course(String id,String name){ this .id=id; this .name=name; } } |
便于创建对象时直接赋值,例如Course c1 = new Course("1","数据结构");
只有在实体类Course中添加了有参构造方法public Course(String id, String name) {...},才能这样赋值,否则只能先创建一个对象,再用set方法赋值。
Course c1 = new Course();
c1.setId("1");
c1.setName("数据结构");
实际项目中应该注意属性的私有化,利用get和set去获取和设置属性;
学生的可选择的课程信息 存放在Set类型的属性courses中
在构造器中 将courses进行初始化(实例化)this.courses=new HashSet();因为Set是一个接口,所以不能直接实例化,通过HashSet这个实现类来进行实例化 ,需要导入包
在实际开发中,应该把所有的属性都私有化,然后通过get 和 set 来访问属性。
实际开发中,类的属性应该私有化
import java.utils.Set;
import java.utils.HashSet;
class Student {
private String id;
private String name;
private Set courses;
public Student(String id, String name) {
this.id = id;
this.name = name;
this.course = new HashSet();
}
}