问答详情
源自:4-3 学生选课--创建学生类和课程类

这里要是不用public 使用封装get和set的话后面怎么调用啊

package com.imooc.collection;

/*
 * 课程类
 * 
 * */
public class Course {

	 
	private String id;               //其实在实际开发中 应该把属性私有化 通过getter或者Setter来获取或者调用
	
	private String name;                  //给两个属性 一个id属性 一个name属性
	
	public Course(String id,String name){
		this.id = id;
		this.name = name;
		
	}
	public Course(){
		
		
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}
package com.imooc.collection;

import java.util.ArrayList;
import java.util.List;

public class TestGeneric {
	
	/*
	 * 带有泛型——Course,的List类型属性
	 * */
	public List<Course> courses;    
	
	public TestGeneric(){       //构造器
		this.courses = new ArrayList<Course>() ;    //这里是要写出泛型的
	}
	
	/*
	 * 测试添加的方法
	 * 
	 * */
	
	public void testAdd(){
		Course cr1 = new Course("1","大学语文");
		courses.add(cr1);
		//泛型集合中,不能添加泛型规定的类型及其子类型以外的对象,否则会报错
		//courses.add("能否添加一些奇怪的东西呢???");
		Course cr2 = new Course("2","java基础");
		courses.add(cr2);
		
	}
	
	/*
	 * 测试循环遍历的方法
	 * 
	 * */
	
	public void testForEach(){
		
		for (Course cr:courses){    //因为泛型定义了 所以和ListTest.java中写的不一样
			
			System.out.println(cr.id + ":" + cr.name);
			
		}
		
	}
	
	/*
	 * 泛型集合可以添加泛型的子类型的对象实例
	 * 
	 * */
	
	public void testChild(){
		ChildCourse ccr = new ChildCourse();
		ccr.id= "3";
		ccr.name = "我是子对象的实例~~";
		courses.add(ccr);
		
	}
	
	/*
	 * 泛型不能使用基本类型
	 * 
	 * */
	
	public void testBasicType(){
		List<Integer> list=new ArrayList<Integer> ();
		list.add(1);
		System.out.println("基本类型必须使用包装类作为泛型!" + list.get(0));
	}
	
	public static void main(String[] atgs){
		TestGeneric tg = new TestGeneric();
		tg.testAdd();
		tg.testForEach();
		tg.testChild();
		tg.testForEach();
		tg.testBasicType();
	}
}

如果要是不用public以后便会报错 引用不到了 那后面的文件应该怎么改 才可以获取到前面那个封装了的id和name属性呢 自己试了很多遍 也看了封装那一节 还是不会改 求大牛帮忙指点一下 谢谢


//img4.sycdn.imooc.com/59e846580001861306890509.jpg

提问者:慕移动7208282 2017-10-19 14:31

个回答

  • qq_黄鑫_1
    2017-10-19 14:37:13
    已采纳

    使用ccr.getId();获得 id 值,使用ccr.getName();获得 name 值