学习的第24天。
总结:
泛型:
约束,规范类型
实例泛型:
类:创建对象时,为类所定义的泛型,进行参数化赋值
接口:实现接口时,为接口所定义的泛型,进行参数化赋值
静态泛型:
定义在
定义在方法的形参列表当中:<?> <? extens Object><>
习题:
CD.11: 有如下代码:
interface IA{
void ma();
}
class MyClass implements IA{
public void ma(){}
public String toString(){
return "MyClass toString()";
}
}
class TestMyClass {
public static void main(String[] args) {
IA ia = new MyClass();
System.out.println(ia);
}
}
正确答案:C
CD.12: 给定一个长度,随机产生一个该长度的字符串,由大写,小写字母及数字组成。:
import java.util.Scanner;
class TestMyClass {
public static void main(String[] args) {
int counter=0;
int w=0;
Scanner input = new Scanner(System.in);
System.out.print("请输入字符串:");
String s = input.next();
System.out.println();
System.out.print("输入子字符串:");
String sss = input.next();
if(s.contains(sss)){
while(counter<s.length()){
w=s.indexOf(sss,counter);
System.out.println("出现的位置是:"+w);
counter=w+sss.length();
}
}else{
System.out.println("没有一样的");
}
}
}
CD.13 给定一个字符串,判断该字符串中是否包含某个子串,如果包含,求出子串出现的位置:
class TestMyClass {
public static void main(String[] args) {
int counter=0;
int w=0;
Scanner input = new Scanner(System.in);
System.out.print("请输入字符串:");
String s = input.next();
System.out.println();
System.out.print("输入子字符串:");
String sss = input.next();
if(s.contains(sss)){
while(counter<s.length()){
w=s.indexOf(sss,counter);
System.out.println("出现的位置是:"+w);
counter=counter+w+1;
}
}else{
System.out.println("没有一样的");
}
}
}
CD.14 有如下Student 对象:
class Student {
private String name;
private int age;
private double score;
private String classNum;
protected Student(){}
protected Student(String name, int age, double score, String classNum) {
super();
this.name = name;
this.age = age;
this.score = score;
this.classNum = classNum;
}
String getName() {
return name;
}
void setName(String name) {
this.name = name;
}
int getAge() {
return age;
}
void setAge(int age) {
this.age = age;
}
double getScore() {
return score;
}
void setScore(double score) {
this.score = score;
}
String getClassNum() {
return classNum;
}
void setClassNum(String classNum) {
this.classNum = classNum;
};
}
import java.util.ArrayList;
import java.util.List;
class Test14 {
public static void main(String[] args) {
List<Student> list = new ArrayList<Student>();
list.add(new Student("tom",18,100,"class5"));
list.add(new Student("jerry",22,70,"class4"));
list.add(new Student("owen",25,90,"class5"));
list.add(new Student("jim",30,80,"class5"));
list.add(new Student("steve",28,66,"class6"));
list.add(new Student("kevin",24,100,"class4"));
list.add(new Student("kevin",24,100,"class9"));
//平均年龄
int sum=0;
for (int i = 0; i < list.size(); i++) {
sum+=list.get(i).getAge();
}
System.out.println("平均年龄:"+sum/list.size());
System.out.println(list.size());
//各班平均分
m(list);
}
//各班平均分
public static void m(List<Student> list){
int[] classSize = new int[10];
double[] eachClassSum = new double[10];
for (int i = 0; i < list.size(); i++) {
int classNumber=( list.get(i).getClassNum().charAt( list.get(i).getClassNum().length()-1 )-48 );
classSize[classNumber]++;
eachClassSum[classNumber]+=list.get(i).getScore();
}
for (int i = 0; i < eachClassSum.length; i++) {
if(classSize[i]!=0){
System.out.println(i+"班平均分为:"+eachClassSum[i]/classSize[i]);
}
}
}
}