关键词:
《面向对象程序设计(java)》第十周学习总结
第一部分:理论知识学习部分
第八章 泛型程序设计
一、泛型程序设计的定义
1、JDK 5.0 中增加的泛型类型,是Java 语言中类型安全的一次重要改进。
2、 泛型:也称参数化类型(parameterized type),就是在定义类、接口和方法时,通过类型参数指示将要处理的对象类型。(如ArrayList类)
3、泛型程序设计(Generic programming):编写代码可以被很多不同类型的对象所重用。
4、一个泛型类(generic class)就是具有一个或多个类型变量的类,即创建用类型作为参数的类。如一个泛型类定义格式如下:class Generics<K,V>其中的K和V是类中的可变类型参数。
5、Pair类引入了一个类型变量T,用尖括号(<>)括起来,并放在类名的后面。
6、 泛型类可以有多个类型变量。例如:public class Pair<T, U> …
7、 类定义中的类型变量用于指定方法的返回类型以及域、局部变量的类型。
二、泛型方法的声明
1、 泛型方法
(1) 除了泛型类外,还可以只单独定义一个方法作为泛型方法,用于指定方法参数或者返回值为泛型类型,留待方法调用时确定。
(2) 泛型方法可以声明在泛型类中,也可以声明在普通类中。
第二部分:实验部分
1.实验名称:实验十 泛型程序设计技术
2.实验目的与要求
(1) 理解泛型概念;
(2) 掌握泛型类的定义与使用;
(3) 掌握泛型方法的声明与使用;
(4) 掌握泛型接口的定义与实现;
(5)了解泛型程序设计,理解其用途。
3.实验内容和步骤
实验1: 导入第8章示例程序,测试程序并进行代码注释。
测试程序1:
l 编辑、调试、运行教材311、312页 代码,结合程序运行结果理解程序;
l 在泛型类定义及使用代码处添加注释;
l 掌握泛型类的定义及使用。
1 package pair1; 2 3 /** 4 * @version 1.00 2004-05-10 5 * @author Cay Horstmann 6 */ 7 public class Pair<T> //定义公共类,Pair类引入了一个类型变量T,用于指定方法的返回类型以及域、局部变量的类型。
8
9 private T first; 10 private T second; 11 12 public Pair() first = null; second = null; 13 public Pair(T first, T second) this.first = first; this.second = second; 14 15 public T getFirst() return first; 16 public T getSecond() return second; 17 18 public void setFirst(T newValue) first = newValue; 19 public void setSecond(T newValue) second = newValue; 20
1 package pair1; 2 3 /** 4 * @version 1.01 2012-01-26 5 * @author Cay Horstmann 6 */ 7 public class PairTest1//定义公共类 8 9 public static void main(String[] args) 10 11 String[] words = "Mary", "had", "a", "little", "lamb" ; 12 Pair<String> mm = ArrayAlg.minmax(words); 13 System.out.println("min = " + mm.getFirst()); 14 System.out.println("max = " + mm.getSecond()); 15 16 17 18 class ArrayAlg//另一个类 19 20 /** 21 * Gets the minimum and maximum of an array of strings. 22 * @param a an array of strings 23 * @return a pair with the min and max value, or null if a is null or empty 24 */ 25 public static Pair<String> minmax(String[] a) 26 27 if (a == null || a.length == 0) return null;//条件判断语句 28 String min = a[0]; 29 String max = a[0]; 30 for (int i = 1; i < a.length; i++)//for循环语句 31 32 if (min.compareTo(a[i]) > 0) min = a[i]; 33 if (max.compareTo(a[i]) < 0) max = a[i]; 34 35 return new Pair<>(min, max); 36 37
运行结果如下:
测试程序2:
l 编辑、调试运行教材315页 PairTest2,结合程序运行结果理解程序;
l 在泛型程序设计代码处添加相关注释;
l 掌握泛型方法、泛型变量限定的定义及用途。
1 package pair2; 2 3 /** 4 * @version 1.00 2004-05-10 5 * @author Cay Horstmann 6 */ 7 public class Pair<T> //定义公共类,Pair类引入一个类型变量T,用于指定方法的返回类型以及域、局部变量的类型 8 9 private T first; 10 private T second; 11 12 public Pair() first = null; second = null; 13 public Pair(T first, T second) this.first = first; this.second = second; 14 15 public T getFirst() return first; 16 public T getSecond() return second; 17 18 public void setFirst(T newValue) first = newValue; 19 public void setSecond(T newValue) second = newValue; 20
1 package pair2; 2 3 import java.time.*; 4 5 /** 6 * @version 1.02 2015-06-21 7 * @author Cay Horstmann 8 */ 9 public class PairTest2//定义公共类 10 11 public static void main(String[] args) 12 13 LocalDate[] birthdays = 14 15 LocalDate.of(1906, 12, 9), // G. Hopper 16 LocalDate.of(1815, 12, 10), // A. Lovelace 17 LocalDate.of(1903, 12, 3), // J. von Neumann 18 LocalDate.of(1910, 6, 22), // K. Zuse 19 ; 20 Pair<LocalDate> mm = ArrayAlg.minmax(birthdays); 21 System.out.println("min = " + mm.getFirst()); 22 System.out.println("max = " + mm.getSecond()); 23 24 25 26 class ArrayAlg//另一个类 27 28 /** 29 Gets the minimum and maximum of an array of objects of type T. 30 @param a an array of objects of type T 31 @return a pair with the min and max value, or null if a is 32 null or empty 33 */ 34 public static <T extends Comparable> Pair<T> minmax(T[] a) //定义泛型变量的上界,extends关键字所声明的上界既可以是一个类,也可以是一个接口;
35 36 if (a == null || a.length == 0) return null;//条件判断语句 37 T min = a[0]; 38 T max = a[0]; 39 for (int i = 1; i < a.length; i++)//for循环语句 40 41 if (min.compareTo(a[i]) > 0) min = a[i]; 42 if (max.compareTo(a[i]) < 0) max = a[i]; 43 44 return new Pair<>(min, max); 45 46
运行结果如下:
测试程序3:
l 用调试运行教材335页 PairTest3,结合程序运行结果理解程序;
l 了解通配符类型的定义及用途。
1 package pair3; 2 3 import java.time.*; 4 5 public class Employee//定义一个公共类 6 7 private String name; 8 private double salary; 9 private LocalDate hireDay; 10 11 public Employee(String name, double salary, int year, int month, int day) 12 13 this.name = name; 14 this.salary = salary; 15 hireDay = LocalDate.of(year, month, day); 16 17 18 public String getName() 19 20 return name; 21 22 23 public double getSalary() 24 25 return salary; 26 27 28 public LocalDate getHireDay() 29 30 return hireDay; 31 32 33 public void raiseSalary(double byPercent) 34 35 double raise = salary * byPercent / 100; 36 salary += raise; 37 38
1 package pair3; 2 3 public class Manager extends Employee 4 5 private double bonus; 6 7 /** 8 @param name the employee‘s name 9 @param salary the salary 10 @param year the hire year 11 @param month the hire month 12 @param day the hire day 13 */ 14 public Manager(String name, double salary, int year, int month, int day) 15 16 super(name, salary, year, month, day); 17 bonus = 0; 18 19 20 public double getSalary() 21 22 double baseSalary = super.getSalary(); 23 return baseSalary + bonus; 24 25 26 public void setBonus(double b) 27 28 bonus = b; 29 30 31 public double getBonus() 32 33 return bonus; 34 35
1 package pair3; 2 3 /** 4 * @version 1.00 2004-05-10 5 * @author Cay Horstmann 6 */ 7 public class Pair<T> //定义公共类,Pair类引入一个类型变量T,用于指定方法的返回类型以及域、局部变量的类型 8 9 private T first; 10 private T second; 11 12 public Pair() first = null; second = null; 13 public Pair(T first, T second) this.first = first; this.second = second; 14 15 public T getFirst() return first; 16 public T getSecond() return second; 17 18 public void setFirst(T newValue) first = newValue; 19 public void setSecond(T newValue) second = newValue; 20
1 package pair3; 2 3 /** 4 * @version 1.01 2012-01-26 5 * @author Cay Horstmann 6 */ 7 public class PairTest3 8 9 public static void main(String[] args) 10 11 Manager ceo = new Manager("Gus Greedy", 800000, 2003, 12, 15); 12 Manager cfo = new Manager("Sid Sneaky", 600000, 2003, 12, 15); 13 Pair<Manager> buddies = new Pair<>(ceo, cfo); 14 printBuddies(buddies); 15 16 ceo.setBonus(1000000); 17 cfo.setBonus(500000); 18 Manager[] managers = ceo, cfo ; 19 20 Pair<Employee> result = new Pair<>(); 21 minmaxBonus(managers, result); 22 System.out.println("first: " + result.getFirst().getName() 23 + ", second: " + result.getSecond().getName()); 24 maxminBonus(managers, result); 25 System.out.println("first: " + result.getFirst().getName() 26 + ", second: " + result.getSecond().getName()); 27 28 29 public static void printBuddies(Pair<? extends Employee> p)//表示带有上界 30 31 Employee first = p.getFirst(); 32 Employee second = p.getSecond(); 33 System.out.println(first.getName() + " and " + second.getName() + " are buddies."); 34 35 36 public static void minmaxBonus(Manager[] a, Pair<? super Manager> result)//定义泛型变量的下界,通过使用super关键字可以固定泛型参数的类型为某种类型或者其超类
37 38 if (a.length == 0) return; 39 Manager min = a[0]; 40 Manager max = a[0]; 41 for (int i = 1; i < a.length; i++) 42 43 if (min.getBonus() > a[i].getBonus()) min = a[i]; 44 if (max.getBonus() < a[i].getBonus()) max = a[i]; 45 46 result.setFirst(min); 47 result.setSecond(max); 48 49 50 public static void maxminBonus(Manager[] a, Pair<? super Manager> result)//表示带有下界 51 52 minmaxBonus(a, result); 53 PairAlg.swapHelper(result); // OK--swapHelper captures wildcard type 54 55 // Can‘t write public static <T super manager> ... 56 57 58 class PairAlg 59 60 public static boolean hasNulls(Pair<?> p)//"?"----类型变量的通配符,表示任何类型 61 62 return p.getFirst() == null || p.getSecond() == null; 63 64 65 public static void swap(Pair<?> p) swapHelper(p); //无限定通配符,可以用任意Object对象调用原始的Pair类的setObject方法。
66 67 public static <T> void swapHelper(Pair<T> p) 68 69 T t = p.getFirst(); 70 p.setFirst(p.getSecond()); 71 p.setSecond(t); 72 73
运行结果如下:
实验2:编程练习:
编程练习1:实验九编程题总结
l 实验九编程练习1总结(从程序总体结构说明、模块说明,目前程序设计存在的困难与问题三个方面阐述)。
1、程序总体结构说明:
主类Main 子类Person
2、模块说明
(1)Main
- 文件信息的查找
- 根据实验要求对文件信息进行选择性读取
(2) Person
- 对读取的信息进行相应的、具体的处理
3、目前程序设计存在的困难与问题: 由整体的框架构想到实际代码的实验还有很多的路要走
4、程序具体模块展示如下:
1 import java.io.BufferedReader; 2 import java.io.File; 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.IOException; 6 import java.io.InputStreamReader; 7 import java.util.ArrayList; 8 import java.util.Arrays; 9 import java.util.Collections; 10 import java.util.Scanner; 11 12 public class Main 13 private static ArrayList<Person> Personlist; 14 public static void main(String[] args) 15 Personlist = new ArrayList<>(); 16 Scanner scanner = new Scanner(System.in); 17 File file = new File("D:\\身份证号.txt"); 18 try 19 FileInputStream fis = new FileInputStream(file); 20 BufferedReader in = new BufferedReader(new InputStreamReader(fis)); 21 String temp = null; 22 while ((temp = in.readLine()) != null) 23 24 Scanner linescanner = new Scanner(temp); 25 26 linescanner.useDelimiter(" "); 27 String name = linescanner.next(); 28 String ID = linescanner.next(); 29 String sex = linescanner.next(); 30 String age = linescanner.next(); 31 String place =linescanner.nextLine(); 32 Person Person = new Person(); 33 Person.setname(name); 34 Person.setID(ID); 35 Person.setsex(sex); 36 int a = Integer.parseInt(age); 37 Person.setage(a); 38 Person.setbirthplace(place); 39 Personlist.add(Person); 40 41 42 catch (FileNotFoundException e) 43 System.out.println("查找不到信息"); 44 e.printStackTrace(); 45 catch (IOException e) 46 System.out.println("信息读取有误"); 47 e.printStackTrace(); 48 49 boolean isTrue = true; 50 while (isTrue) 51 System.out.println("————————————————————————————————————————"); 52 System.out.println("1:按姓名字典序输出人员信息"); 53 System.out.println("2:查询最大年龄与最小年龄人员信息"); 54 System.out.println("3:按省份找同乡"); 55 System.out.println("4:输入你的年龄,查询年龄与你最近人的信息"); 56 System.out.println("5:exit"); 57 int nextInt = scanner.nextInt(); 58 switch (nextInt) 59 case 1: 60 Collections.sort(Personlist); 61 System.out.println(Personlist.toString()); 62 break; 63 case 2: 64 65 int max=0,min=100;int j,k1 = 0,k2=0; 66 for(int i=1;i<Personlist.size();i++) 67 68 j=Personlist.get(i).getage(); 69 if(j>max) 70 71 max=j; 72 k1=i; 73 74 if(j<min) 75 76 min=j; 77 k2=i; 78 79 80 81 System.out.println("年龄最大:"+Personlist.get(k1)); 82 System.out.println("年龄最小:"+Personlist.get(k2)); 83 break; 84 case 3: 85 System.out.println("place?"); 86 String find = scanner.next(); 87 String place=find.substring(0,3); 88 String place2=find.substring(0,3); 89 for (int i = 0; i <Personlist.size(); i++) 90 91 if(Personlist.get(i).getbirthplace().substring(1,4).equals(place)) 92 System.out.println("maybe is "+Personlist.get(i)); 93 94 95 96 break; 97 case 4: 98 System.out.println("年龄:"); 99 int yourage = scanner.nextInt(); 100 int near=agenear(yourage); 101 int d_value=yourage-Personlist.get(near).getage(); 102 System.out.println(""+Personlist.get(near)); 103 /* for (int i = 0; i < Personlist.size(); i++) 104 105 int p=Personlist.get(i).getage()-yourage; 106 if(p<0) p=-p; 107 if(p==d_value) System.out.println(Personlist.get(i)); 108 */ 109 break; 110 case 5: 111 isTrue = false; 112 System.out.println("退出程序!"); 113 break; 114 default: 115 System.out.println("输入有误"); 116 117 118 119 public static int agenear(int age) 120 121 int j=0,min=53,d_value=0,k=0; 122 for (int i = 0; i < Personlist.size(); i++) 123 124 d_value=Personlist.get(i).getage()-age; 125 if(d_value<0) d_value=-d_value; 126 if (d_value<min) 127 128 min=d_value; 129 k=i; 130 131 132 return k; 133 134 135 136 137
1 public class Person implements Comparable<Person> 2 private String name; 3 private String ID; 4 private int age; 5 private String sex; 6 private String birthplace; 7 8 public String getname() 9 return name; 10 11 public void setname(String name) 12 this.name = name; 13 14 public String getID() 15 return ID; 16 17 public void setID(String ID) 18 this.ID= ID; 19 20 public int getage() 21 22 return age; 23 24 public void setage(int age) 25 // int a = Integer.parseInt(age); 26 this.age= age; 27 28 public String getsex() 29 return sex; 30 31 public void setsex(String sex) 32 this.sex= sex; 33 34 public String getbirthplace() 35 return birthplace; 36 37 public void setbirthplace(String birthplace) 38 this.birthplace= birthplace; 39 40 41 public int compareTo(Person o) 42 return this.name.compareTo(o.getname()); 43 44 45 46 public String toString() 47 return name+" "+sex+" "+age+" "+ID+" "+birthplace+" "; 48 49 50 51 52 53
l 实验九编程练习2总结(从程序总体结构说明、模块说明,目前程序设计存在的困难与问题三个方面阐述)。
1、程序总体结构说明:
主类Demo 子类Counter
2、模块说明
(1)Demo
- 十道四则运算练习题的生成
- 输入答案的正误判断
- 文件的生成
(2)Counter
- 四则运算的具体计算
3、目前程序设计存在的困难与问题:
text文件的输出存在问题
4、程序具体模块展示如下:
1 import java.io.FileNotFoundException; 2 import java.io.PrintWriter; 3 import java.util.Scanner; 4 5 /* 6 * 该程序用来随机生成0到100以内的加减乘除题 7 */ 8 public class Demo 9 public static void main(String[] args) 10 // 用户的答案要从键盘输入,因此需要一个键盘输入流 11 Scanner in = new Scanner(System.in); 12 Counter counter=new Counter(); 13 PrintWriter out = null; 14 try 15 out = new PrintWriter("text.txt"); 16 catch (FileNotFoundException e) 17 // TODO Auto-generated catch block 18 e.printStackTrace(); 19 20 // 定义一个变量用来统计得分 21 int sum = 0; 22 int k=0; 23 // 通过循环生成10道题 24 for (int i = 0; i < 10; i++) 25 26 // 随机生成两个100以内的随机数作加减乘除 27 int a = (int) Math.round(Math.random() * 100); 28 int b = (int) Math.round(Math.random() * 100); 29 int d = (int) Math.round(Math.random() * 3); 30 31 switch (d) 32 33 case 0: 34 if(a%b == 0) 35 System.out.println(a + "/" + b + "="); 36 break; 37 38 //int c = in.nextInt(); 39 //out.println(a + "/" + b + "="+c); 40 case 1: 41 System.out.println(a + "*" + b + "="); 42 //int c1 = in.nextInt(); 43 //out.println(a + "*" + b + "="+c1); 44 break; 45 case 2: 46 System.out.println(a + "+" + b + "="); 47 //int c2 = in.nextInt(); 48 //out.println(a + "+" + b + "="+c2); 49 break; 50 case 3: 51 if(a>b) 52 System.out.println(a + "-" + b + "="); 53 break; 54 55 //int c3 = in.nextInt(); 56 //out.println(a + "-" + b + "="+c3); 57 58 59 60 // 定义一个整数用来接收用户输入的答案 61 double c = in.nextDouble(); 62 63 // 判断用户输入的答案是否正确,正确给10分,错误不给分 64 if (c == a / b | c == a * b | c == a + b | c == a - b) 65 sum += 10; 66 System.out.println("恭喜答案正确"); 67 68 else 69 System.out.println("抱歉,答案错误"); 70 71 72 out.println(a + "/" + b + "="+c ); 73 out.println(a + "*" + b + "="+c); 74 out.println(a + "+" + b + "="+c); 75 out.println(a + "-" + b + "="+c); 76 77 78 //输出用户的成绩 79 System.out.println("你的得分为"+sum); 80 81 out.println("成绩:"+sum); 82 out.close(); 83 84
public class Counter private int a; private int b; public int add(int a,int b) return a+b; public int reduce(int a,int b) return a-b; public int multiplication(int a,int b) return a*b; public int division(int a,int b) if(b!=0) return a/b; else return 0;
编程练习2:采用泛型程序设计技术改进实验九编程练习2,使之可处理实数四则运算,其他要求不变。
改进后的程序如下:
1 import java.io.FileNotFoundException; 2 import java.io.PrintWriter; 3 import java.util.Scanner; 4 5 /* 6 * 该程序用来随机生成0到100以内的加减乘除题 7 */ 8 public class Demo 9 public static void main(String[] args) 10 // 用户的答案要从键盘输入,因此需要一个键盘输入流 11 Scanner in = new Scanner(System.in); 12 Counter counter=new Counter(); 13 PrintWriter out = null; 14 try 15 out = new PrintWriter("text.txt"); 16 catch (FileNotFoundException e) 17 // TODO Auto-generated catch block 18 e.printStackTrace(); 19 20 // 定义一个变量用来统计得分 21 int sum = 0; 22 int k=0; 23 // 通过循环生成10道题 24 for (int i = 0; i < 10; i++) 25 26 // 随机生成两个100以内的随机数作加减乘除 27 int a = (int) Math.round(Math.random() * 100); 28 int b = (int) Math.round(Math.random() * 100); 29 int d = (int) Math.round(Math.random() * 3); 30 31 switch (d) 32 33 case 0: 34 if(a%b == 0) 35 System.out.println(a + "/" + b + "="); 36 break; 37 38 //int c = in.nextInt(); 39 //out.println(a + "/" + b + "="+c); 40 case 1: 41 System.out.println(a + "*" + b + "="); 42 //int c1 = in.nextInt(); 43 //out.println(a + "*" + b + "="+c1); 44 break; 45 case 2: 46 System.out.println(a + "+" + b + "="); 47 //int c2 = in.nextInt(); 48 //out.println(a + "+" + b + "="+c2); 49 break; 50 case 3: 51 if(a>b) 52 System.out.println(a + "-" + b + "="); 53 break; 54 55 //int c3 = in.nextInt(); 56 //out.println(a + "-" + b + "="+c3); 57 58 59 60 // 定义一个整数用来接收用户输入的答案 61 double c = in.nextDouble(); 62 63 // 判断用户输入的答案是否正确,正确给10分,错误不给分 64 if (c == a / b | c == a * b | c == a + b | c == a - b) 65 sum += 10; 66 System.out.println("恭喜答案正确"); 67 68 else 69 System.out.println("抱歉,答案错误"); 70 71 72 out.println(a + "/" + b + "="+c ); 73 out.println(a + "*" + b + "="+c); 74 out.println(a + "+" + b + "="+c); 75 out.println(a + "-" + b + "="+c); 76 77 78 //输出用户的成绩 79 System.out.println("你的得分为"+sum); 80 81 out.println("成绩:"+sum); 82 out.close(); 83 84
4. 实验总结:
通过本次实验我理解了泛型的概念;掌握了泛型类的定义与使用; 掌握了泛型方法的声明与使用; 掌握了泛型接口的定义与实现;了解了泛型程序设计和它的用途。
杨玲201771010133《面向对象程序设计(java)》第五周学习总结
《面向对象程序设计(java)》第五周学习总结第一部分:课程准备部分第二部分:理论知识学习部分 第四章:对象与类 4.1:类与对象的概念。 类:是构造对象的模板或蓝图。由类构造对象的过程称为创建类的实例... 查看详情
杨玲201771010133《面向对象程序设计(java)》第六周学习总结(代码片段)
杨玲201771010133《面向对象程序设计(java)》第六周学习总结第一部分:理论知识学习部分1.继承用已有类来构建新类的一种机制。新类可以继承父类的方法和域,同时可以在新类中添加新的方法和域。已有类称为:超类、基类或... 查看详情
杨玲201771010133《面向对象程序设计(java)》第十三周学习总结(代码片段)
《面向对象程序设计(java)》第十三周学习总结第一部分:理论知识学习部分1、事件源(eventsource):能够产生事件的对象都可以成为事件源,如文本框、按钮等。一个事件源是一个能够注册监听器并向监听器发送事件对... 查看详情
杨玲201771010133《面向对象程序设计(java)》第二周学习总结
《面向对象程序设计(java)》第一周学习总结第一部分:课程准备部分第二部分:理论知识学习部分 第三章 JAVA基本程序设计结构1.基本知识(1)标识符 标识符由字母、下划线、美元符号和数字组成,且第一个符号... 查看详情
杨玲201771010133《面向对象程序设计(java)》第十周学习总结(代码片段)
《面向对象程序设计(java)》第十周学习总结第一部分:理论知识学习部分 第八章 泛型程序设计一、泛型程序设计的定义1、JDK5.0中增加的泛型类型,是Java语言中类型安全的一次重要改进。2、泛型:也称参数... 查看详情
杨玲201771010133《面向对象程序设计(java)》第九周学习总结(代码片段)
《面向对象程序设计(java)》第九周学习总结第一部分:理论知识异常:在程序的执行过程中所发生的异常事件,它中断指令的正常执行。Java的异常处理机制可以控制程序从错误产生的位置转移到能够进行错误处理的位置。程序... 查看详情
杨玲201771010133《面向对象程序设计(java)》第八周学习总结(代码片段)
《面向对象程序设计(java)》第八周学习总结第一部分:理论知识学习部分1. 接口:用interface声明,是抽象方法和常量值定义的集合。从本质上讲,接口是一种特殊的抽象类。(1)在Java程序设计语言中,接口不是类,而是对类... 查看详情
杨玲201771010133《面向对象程序设计(java)》第十八周学习总结(代码片段)
《面向对象程序设计(java)》第十八周学习总结第一部分:理论知识学习部分第二部分:实验部分实验名称:实验十八 总复习1、实验目的与要求(1)综合掌握java基本程序结构;(2) 综合掌握java面向对象程序设计特点... 查看详情
杨玲徐思《面向对象程序设计(java)》第十一周学习总结(代码片段)
《面向对象程序设计(java)》第十一周学习总结第一部分:理论知识学习部分1、一般将数据结构分为两大类:线性数据结构和非线性数据结构。线性数据结构:线性表、栈、队列、串、数组和文件。非线性数据结构:树和图。2... 查看详情
08-面向对象----j
一面向对象的程序设计的由来请参考:http://www.cnblogs.com/linhaifeng/articles/6428835.html二什么是面向对象的程序设计及为什么要有它面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条... 查看详情
2020面向对象设计与构造第三单元博客总结(代码片段)
面向对象设计与构造第三单元总结一、JML规格化设计JML,全称TheJavaModelingLanguage,是用于对Java程序进行规格化描述的注释性质语言。笔者在本文总结了常见的JML语法描述。1.注释结构在注释行或注释块中,以@开头的行被认作JML注... 查看详情
面向对象
老王和隔壁的美女猜数字,一共有四次机会,猜到了就有特殊奖励publicclasstest{publicstaticvoidmain(String[]args){inti=(int)(Math.random()*10);Scannerinput=newScanner(System.in);for(intj=0;j<4;j++){System.out.println("老王第"+(j+1)+"次 查看详情
201771010126王燕《面向对象程序设计(java)》第二周学习总结
201771010126王燕《面向对象程序设计(java)》第二周学习总结一.理论知识学习部分3.1j简单的java应用程序标识符由字母、下划线、美元符号和数字组成,且第一个符号不能为数字。标识符可用作:类名、变量名、方法名、数组名... 查看详情
201823072019-2020-1《数据结构与面向对象程序设计》实验1报告
课程:《程序设计与数据结构》班级:1823姓名:王美皓学号:20182322实验教师:王美皓实验日期:2019年9月9日必修/选修:必修1.实验内容基于命令行和IDE(IntelljIDEA简易教程](http://www.cnblogs.com/rocedu/p/4421202.html)进行简单的Java程... 查看详情
杨其菊201771010134《面向对象程序设计(java)》第三周学习总结(代码片段)
《面向对象程序设计(Java)》第三周学习总结第一部分:理论知识 这周课程没有新进度,由于感觉对基础语法的不熟悉,复习了一遍前三章的细碎知识,学到一些之前不知道的原理: 1.计算机高级语言按程序的... 查看详情
c++面向对象的主要体现是啥?
...得对我有用的话,我会再追加分。)C++面向对象是表现在程序设计的过程上,它是突破了C的结构化设计而出现的完全以实际问题为入手点的。C++的面向对象3个特性:1.封装。2.继承。3.多态。尤其重要的是,它采用类的设计,杜... 查看详情
徐思201771010132《面向对象程序设计(java)》第十二周学习总结(代码片段)
一、理论知识部分Java的抽象窗口工具箱(AbstractWindowToolkit,AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类。大部分AWT组件都有其Swing的等价组件,Swing组件的名字一般是在AWT组件名前面添加一个字母“J”。通... 查看详情
201771010110孔维滢《面向对象程序设计(java)》第十二周学习总结
理论知识部分1.Java的抽象窗口工具箱(AbstractWindowToolkit,AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类。2.Swing用户界面库是非基于对等体的GUI工具箱。Swing类库被放在javax.swing包里。3.大部分AWT组件都有其Swing... 查看详情