我大概明白了,setId是在Course中使用的将course中的this.id=id,换成this.id=setId(id),即可以传递参数了,而getID是在Listtest中的testAdd方法中显示参数.
this在JAVA中有三种用法。(如果你还没学到某些知识没有关系)
第一种:引用成员变量。
解释:红旗小学三年A班有一个学生叫小明的,红旗小学校长也叫小明(分别对应方法中的变量a和类中的成员变量a),前一个小明(变量a)只作用在三年A班,而后一个小明则作用在整个红旗小学(成员变量a),JAVA有一个就近最大的原则,你在三年A班(方法内)大喊“小明”,那么肯定是喊三年A班的那个小明,而不会是校长,那当你要在三年A班调用校长怎么办呢?就用this 小明 = 小明。
第二种:引用构造方法。
JAVA类中可以有很多构造方法,如果在某个构造方法中调用其他构造方法的值,则需使用this且只能在第一行。
有什么用:可以减少代码的重复性,统一构造方法。
第三种:代表this自身对象(默认)。
在eclipse编辑器中输入/** 然后回车会自动生成(文档注释是/** 注释内容 */)。
比如我的是 @author 76305
/**
*
* @author 76305
*
*/
this代表的是当前类的一个实例对象。不能说this就是代表Course。
对courses进行初始化,而courses是set类型的
好糊涂,这个
Set是接口 接口是不能实例化 HashSet是Set接口的实现类所以要通过HashSet调用Set的数据。明白吗?
方法里面调用成员变量时会默认有this.,若带参方法的参数名和成员变量名一样,必须加this.,不然调用的就不是成员变量了。
this:指代当前对象,哪个对象调方法指的就是哪个对象
只能用在方法中,方法中访问成员变量之前默认有个this.
this的用法:
1)this.成员变量名--------------访问成员变量
2)this.方法名()----------------调用方法(一般不用)
3)this()-----------------------调用构造方法
this.courses = new HashSet<Course>();不是.
可以 只要你上百度搜一下eclipse如何汉化就行了 有教程 大致内容是教你如何去官网下载汉化包 不过下载了安装包你需要解压在你eclipse文件夹中的dropins文件夹中就行 重启eclipse 就可以了 不过汉化不完全 但大部分都汉化了 够用了
使用private限制属性的访问范围 private 只能在本类中使用 如果别的类想修改或者调用该属性 就必须使用set方法进行修改 用get方法取得该属性值 具体见第二季2-3访问修饰符 如果不是用private修饰 比入用public修饰 直接修改 不需要set 和get方法 码字不易 如有帮助 留下积分 我也小白 个人见解
每个学生都有若干个课程,就得在学生类里添加一个容器来存放,这个容器就是courses,因为每个学生的课都不一样,所以在new出学生对象的同时,也要创建出容器对象,也就是courses = new HashSet();
this指的是你要创建的这个Student对象,
courses是这个对象的属性
使用ccr.getId();获得 id 值,使用ccr.getName();获得 name 值
先打一个/,再打一个*,然后回车就出来了
你输入了hashSet()myeclipse会提示错误点,鼠标移到红线上 会提示需要导入java.util点了就行了
个人理解,虽然set接口存放的元素都是无序的,不过在本章节中,4-3到4-6所使用的功能是通过List进行实现的。容器就是List,读取也都是在List中进行的,这时的对象存入集合都会变成object类型。而4-11使用set接口时追加了Course的泛型,说明存入的元素为Course类。
无参数的构造方法无法在new的时候传值过来给属性赋值
通过coursesToSelect.get(0)返回一个Courses的对象,0,表示在集合中的第一个元素,因为集合中存储的都是Object对象呀,第一个元素就是第一个对象,对象名为temp
等你使用多态和重用的时候就会明白这么写的道理。
this关键字是用来区分当前类对象,this.name(当前类对象的name属性)=name(方法传递过来的类对象属性)
你理解错了,构造方法中实例化是为了初始化对象的属性。例如:this.courses=new HashSet();这边的实例化的目的是为了后面调用student的courses属性。
而声明时实例化,是将对象实例化,然后再调用。例如:Student st=new Student();这边的是实例化Student的对象st,然后后面就可以调用st.courses属性。
如果构造器中不实例化这个courses,那你声明时就算将对象实例化了也无法调用。
两者的含义不同,无可比性。
就是创建的意思
可以,是一样的,ArrayList是List的一个子类,List是一个接口,你可以去网上了解一下装饰者模式,对于java学习有很大的提升。
就是类的含参构造方法。叫法而已
学生可以选课,这句是用来存放学生课程信息
快捷键有 : Alt + / Ctrl+1(该快捷键 需要鼠标指针在 字段上)
书写的有 :在包 下 输入 import java.util.Set; 即可
建议 你 自己学写 几遍;
先打/*,再加回车就行了,这是多行注释,单行注释直接打双斜线就可以了