面向对象第一次练手-------ArrayList集合、类、对象、冒泡排序、类型转换

思维转不过弯儿来  怎么做都是错      哪怕差一个()就成功的事情,也是千差万别

忽然想到一句话:差一步就成功的距离  =  差几万米就成功的距离

部分的理解和都体现在代码和注释里

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6
 7 namespace 面向对象初步练手
 8 {
 9     class Student
10     {
11
12
13         //      请输入学生数量:10
14
15         //请输入第1个学生的姓名:sdf
16         //请输入第1个学生的性别:男
17         //请输入第1个学生的成绩:0~100 (不在这个范围之内,算作0分)
18         //...
19         //...
20
21         //========学生信息展示=========
22         //名次   姓名    性别     成绩
23         //1      张三     男        99
24         //2      李四     女        90
25         //...
26         //...
27         #region 封装  姓名
28         private string _Name;
29
30         public string Name
31         {
32             get { return _Name; }
33             set { _Name = value; }
34         }
35         #endregion
36
37         #region 封装  性别
38         private bool _Sex;
39
40         public bool Sex
41         {
42             get { return _Sex; }
43             set { _Sex = value; }
44         }
45         public string Sexstr
46         {
47             get { return _Sex ? "男" : "女"; }
48             set
49             {
50                 if (value == "男")
51                     _Sex = true;
52                 else
53                     _Sex = false;
54             }
55         }
56         #endregion
57
58         #region 封装  成绩
59         private int _Degree;
60
61         public int Degree
62         {
63             get { return _Degree; }
64             set {
65                 if (value >= 0 && value <= 100)
66                 {
67                     _Degree = value;
68                 }
69                 else
70                 {
71                     _Degree = 0;
72                 }
73             }
74         }
75         #endregion
76
77
78
79
80
81
82
83
84
85     }
86 }
  1 using System;
  2 using System.Collections;
  3 using System.Collections.Generic;
  4 using System.Linq;
  5 using System.Text;
  6 using System.Threading.Tasks;
  7
  8 namespace 面向对象初步练手
  9 {
 10     class Program
 11     {
 12         static void Main(string[] args)
 13         {
 14
 15
 16             //      请输入学生数量:10
 17
 18             //请输入第1个学生的姓名:sdf
 19             //请输入第1个学生的性别:男
 20             //请输入第1个学生的成绩:0~100 (不在这个范围之内,算作0分)
 21             //...
 22             //...
 23
 24             //========学生信息展示=========
 25             //名次   姓名    性别     成绩
 26             //1      张三     男        99
 27             //2      李四     女        90
 28             //...
 29             //...
 30
 31
 32
 33             //创建集合(集合就是个带有标记的大房间)
 34             ArrayList stu = new ArrayList();
 35
 36             Console.Write("请输入学生数量:");
 37             int stucount = Convert.ToInt32(Console.ReadLine());
 38             Console.WriteLine();
 39
 40             for (int i = 1; i <= stucount; i++)
 41             {
 42                 //把student类   实例化  成一个实际的对象(把人类这个虚构的一个想法,实例化成一个真正的人    人有姓名、性别、成绩这些属性 )
 43                 Student s = new Student();
 44                 Console.Write("请输入第" + i + "个学生的姓名:");
 45                 //给这个人(this这个人)姓名这个属性给附上值
 46                 s.Name = Console.ReadLine();
 47
 48                 Console.Write("请输入第" + i + "个学生的性别:");
 49                 s.Sexstr = Console.ReadLine();
 50
 51                 Console.Write("请输入第" + i + "个学生的成绩:");
 52                 s.Degree = Convert.ToInt32(Console.ReadLine());
 53
 54
 55                 //把这个人(这个人带着这些被赋值的   属性)放入到带有标记的大房间里
 56                 stu.Add(s);
 57                 Console.WriteLine();
 58
 59             }
 60
 61
 62
 63             //冒泡排序
 64
 65
 66             for (int i = 0; i < stu.Count; i++)
 67             {
 68                 for (int j = i + 1; j < stu.Count; j++)
 69                 {
 70                     if (((Student)stu[i]).Degree < ((Student)stu[j]).Degree)
 71                     {
 72                         object temp = stu[i];
 73                         stu[i] = stu[j];
 74                         stu[j] = temp;
 75                     }
 76                 }
 77             }
 78             Console.WriteLine();
 79             Console.WriteLine();
 80             Console.WriteLine("  ========学生信息展示=========");
 81             Console.WriteLine();
 82             Console.WriteLine(" 名次  姓名  性别  成绩");
 83             Console.WriteLine();
 84
 85
 86
 87             //遍历ArrayList stu这个集合,然后输出
 88             int count = 1;
 89             foreach (object a in stu)
 90             {
 91                 Student s = (Student)a;
 92
 93                 Console.WriteLine("  " + count + "   " + s.Name + "   " + s.Sexstr + "   " + s.Degree);
 94                 Console.WriteLine();
 95                 count++;
 96             }
 97
 98
 99
100             Console.ReadLine();
101         }
102     }
103 }

标红和注释的是最让我昨天昨晚最头疼的   以至于敲到最后自己能很明显的感觉到脑子转不动了,实在是转不动了   打个比方:要拿起杯子喝水,杯子拿起来了,不知道怎么喝水了,不知道怎么张嘴了,还会傻呵呵的问“喝水该怎么喝,该怎么张嘴”

时间: 2024-11-09 11:14:18

面向对象第一次练手-------ArrayList集合、类、对象、冒泡排序、类型转换的相关文章

WEBGL学习笔记(七):实践练手1-飞行类小游戏之游戏控制

接上一节,游戏控制首先要解决的就是碰撞检测了 这里用到了学习笔记(三)射线检测的内容了 以鸟为射线原点,向前.上.下分别发射3个射线,射线的长度较短大概为10~30. 根据上一节场景的建设,我把y轴设为前进方向,z轴设为高度~ 如果射线返回有结果,那么说明鸟遇到了障碍物.代码如下: var raycaster1 = new THREE.Raycaster(birdmesh.position, new THREE.Vector3(0, 1, 0), 0, 30) var raycaster2 =

Java面向对象一(封装 继承 多态 类 对象 方法)

1.封装:主要实现了隐藏细节,对用户提供访问接口,无需关心方法的具体实现. 如下,人这个类封装了很多人的属性和行为: 2.继承:很好的实现了代码的复用,提高了编程效率. 人{ 年龄(属性一) 身高(属性二) 性别(属性三) 做事(行为之一) 走路(行为之二) 说话(行为之三)} 教师{ 年龄(属性一) 身高(属性二) 性别(属性三) 做事(行为之一) 走路(行为之二) 说话(行为之三) 教书(行为之四)} 教师继承了人的属性和行为,额外多出的是教书的行为.所以可以写成 教师 继承了 人这个类 的

第一次练手ssm中的一些问题

1. spring mvc中的handle,不需要返回视图时,通过respone返回响应 如果是ajax请求,返回json格式{success:true} response.setCharacterEncoding("utf-8"); try{ response.getWriter().write("{\"success\":true }"); response.getWriter().flush(); }catch(IOException e)

python爬取数据并保存到数据库中(第一次练手完整代码)

1.首先,下载需要的模块requests, BeautifulSoup, datetime, pymysql(注意,因为我用的python3.7,不支持mysqldb了),具体的下载方法有pip下载,或者使用Anaconda版本python的童鞋可以使用conda下载. 2.创建conndb,py,包含数据库的连接断开,增删改查等操作: #!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql def conn_db(): # 连接数

springmvc关于前台日期作为实体类对象参数类型转换错误

页面报错: 后台错误: Field error in object 'user' on field 'birthday': rejected value [2013-06-24]; codes [typeMismatch.user.birthday,typeMismatch.birthday,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessag

Random类&amp;ArrayList集合学习

基础题目 第一题:需求实现 随机验证码. 随机生成十组六位字符组成的验证码. 验证码由大小写字母.数字字符组成. 代码实现,效果如图所示: 开发提示: 使用字符数组保存原始字符,利用Random类生成随机索引. 参考答案: public class Test1 { public static void main(String[] args) { for (int i = 0; i < 10; i++) { String s = verifyCode(); System.out.println(&qu

java基础(7):自定义类、ArrayList集合

1. 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类. 我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用. 第二种,我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我们使用. 这里我们主要介绍第二种情况的简单使用. 1.2 自定义数据类型概述 我们在Java中,将现实生活中的事物抽象成

集合框架(ArrayList存储自定义对象并遍历泛型版)

//集合框架(ArrayList存储自定义对象并遍历泛型版) package cn.itcast_02; import java.util.ArrayList; import java.util.Iterator; /* * 需求:存储自定义对象并遍历. * * A:创建学生类 * B:创建集合对象 * C:创建元素对象 * D:把元素添加到集合 * E:遍历集合 */ public class ArrayListDemo2 { public static void main(String[]

集合框架(去除ArrayList集合中的重复自定义对象元素案例)

学生类 package cn.itcast_04; public class Student { private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public v