面向对象第一次练手-------ArrayList集合、类、对象、冒泡排序、类型转换
思维转不过弯儿来 怎么做都是错 哪怕差一个()就成功的事情,也是千差万别
忽然想到一句话:差一步就成功的距离 = 差几万米就成功的距离
部分的理解和都体现在代码和注释里
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 面向对象初步练手
{
class Student
{ // 请输入学生数量:10 //请输入第1个学生的姓名:sdf
//请输入第1个学生的性别:男
//请输入第1个学生的成绩:0~100 (不在这个范围之内,算作0分)
//...
//... //========学生信息展示=========
//名次 姓名 性别 成绩
//1 张三 男 99
//2 李四 女 90
//...
//...
#region 封装 姓名
private string _Name; public string Name
{
get { return _Name; }
set { _Name = value; }
}
#endregion #region 封装 性别
private bool _Sex; public bool Sex
{
get { return _Sex; }
set { _Sex = value; }
}
public string Sexstr
{
get { return _Sex ? "男" : "女"; }
set
{
if (value == "男")
_Sex = true;
else
_Sex = false;
}
}
#endregion #region 封装 成绩
private int _Degree; public int Degree
{
get { return _Degree; }
set {
if (value >= && value <= )
{
_Degree = value;
}
else
{
_Degree = ;
}
}
}
#endregion }
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 面向对象初步练手
{
class Program
{
static void Main(string[] args)
{ // 请输入学生数量:10 //请输入第1个学生的姓名:sdf
//请输入第1个学生的性别:男
//请输入第1个学生的成绩:0~100 (不在这个范围之内,算作0分)
//...
//... //========学生信息展示=========
//名次 姓名 性别 成绩
//1 张三 男 99
//2 李四 女 90
//...
//... //创建集合(集合就是个带有标记的大房间)
34 ArrayList stu = new ArrayList(); Console.Write("请输入学生数量:");
int stucount = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(); for (int i = ; i <= stucount; i++)
{
//把student类 实例化 成一个实际的对象(把人类这个虚构的一个想法,实例化成一个真正的人 人有姓名、性别、成绩这些属性 )
Student s = new Student();
Console.Write("请输入第" + i + "个学生的姓名:");
//给这个人(this这个人)姓名这个属性给附上值
s.Name = Console.ReadLine(); Console.Write("请输入第" + i + "个学生的性别:");
s.Sexstr = Console.ReadLine(); Console.Write("请输入第" + i + "个学生的成绩:");
s.Degree = Convert.ToInt32(Console.ReadLine()); //把这个人(这个人带着这些被赋值的 属性)放入到带有标记的大房间里
stu.Add(s);
Console.WriteLine(); } //冒泡排序 for (int i = ; i < stu.Count; i++)
{
for (int j = i + ; j < stu.Count; j++)
{
if (((Student)stu[i]).Degree < ((Student)stu[j]).Degree)
71 {
72 object temp = stu[i];
73 stu[i] = stu[j];
74 stu[j] = temp;
}
}
}
Console.WriteLine();
Console.WriteLine();
Console.WriteLine(" ========学生信息展示=========");
Console.WriteLine();
Console.WriteLine(" 名次 姓名 性别 成绩");
Console.WriteLine(); //遍历ArrayList stu这个集合,然后输出
int count = ;
foreach (object a in stu)
{
Student s = (Student)a; Console.WriteLine(" " + count + " " + s.Name + " " + s.Sexstr + " " + s.Degree);
Console.WriteLine();
count++;
} Console.ReadLine();
}
}
}
标红和注释的是最让我昨天昨晚最头疼的 以至于敲到最后自己能很明显的感觉到脑子转不动了,实在是转不动了 打个比方:要拿起杯子喝水,杯子拿起来了,不知道怎么喝水了,不知道怎么张嘴了,还会傻呵呵的问“喝水该怎么喝,该怎么张嘴”
面向对象第一次练手-------ArrayList集合、类、对象、冒泡排序、类型转换的更多相关文章
- Arraylist集合、对象数组
Arraylist集合 ArrayList是List接口的一个实现类,它是程序中最常见的一种集合. 他的特点:在增加或删除指定位置的元素时,会创建新的数组,效率比较低,因此不适合做大量的增删操作,Ar ...
- WEBGL学习笔记(七):实践练手1-飞行类小游戏之游戏控制
接上一节,游戏控制首先要解决的就是碰撞检测了 这里用到了学习笔记(三)射线检测的内容了 以鸟为射线原点,向前.上.下分别发射3个射线,射线的长度较短大概为10~30. 根据上一节场景的建设,我把y轴设 ...
- springmvc关于前台日期作为实体类对象参数类型转换错误
页面报错: 后台错误: Field error in object 'user' on field 'birthday': rejected value [2013-06-24]; codes [ty ...
- Scanner类、匿名对象、Random类、ArrayList集合、String类、static静态类、math类和Arrays工具类
一.Scanner类 1.除了八种基本数据类型,其他都是引用类型: 引用类型使用三步骤: 2.Scanner类 引用jdk提供的类,Scanner在java.util包下,不在java.lang包(S ...
- Java基础六(自定义类、ArrayList集合)
今日内容介绍1.自定义类型的定义及使用2.自定义类的内存图3.ArrayList集合的基本功能4.随机点名器案例及库存案例代码优化 ###01引用数据类型_类 * A: 数据类型 * a: java中 ...
- 06_Java基础语法_第6天(自定义类、ArrayList集合)_讲义
今日内容介绍 1.自定义类型的定义及使用 2.自定义类的内存图 3.ArrayList集合的基本功能 4.随机点名器案例及库存案例代码优化 01引用数据类型_类 * A: 数据类型 * a: java ...
- Java基础语法(自定义类、ArrayList集合)
Java基础语法 今日内容介绍 u 自定义类 u ArrayList集合 第1章 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类 ...
- java基础(7):自定义类、ArrayList集合
1. 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类.Random类. 我们可以把类的类型为两种: 第一种,Java为我们提供好 ...
- JAVA基础学习之final关键字、遍历集合、日期类对象的使用、Math类对象的使用、Runtime类对象的使用、时间对象Date(两个日期相减)(5)
1.final关键字和.net中的const关键字一样,是常量的修饰符,但是final还可以修饰类.方法.写法规范:常量所有字母都大写,多个单词中间用 "_"连接. 2.遍历集合A ...
随机推荐
- pages bookmarks for machine learning domain
http://www.ai-start.com/dl2017/html/lesson4-week2.html 达叔深度学习笔记 http://cs231n.github.io/convolution ...
- php编译安装 报错 make ***[libphp5.la] Error 1解决方法
报错信息: /usr/bin/ld: cannot find -lltdl collect2: ld returned 1 exit status make: *** [libphp5.la] Err ...
- Dictionary CovertTo List
示例代码 假设有如下一个Dictionary 要转换成List Dictionary<string, string> dicNumber = new Dictionary<strin ...
- win10连接外接鼠标怎么禁用触摸板
Win10笔记本如何禁用触摸板呢?Win10笔记本如何设置“插入鼠标自动禁止触摸板功能”呢?虽然笔记本触摸板在一定程度上可以方便我们的 操作,但是在以鼠标和键盘做为重要的输入设备的情况下,笔记本触摸板 ...
- 等我干IT发财了,就和你离婚。。。。。
01 “等我干IT发财了,就和你离婚” 他淡淡地说 听完后,她心里暖暖的, 她想,没有比这更天长地久. 海枯石烂的承诺了. ——2018年度最佳微小说奖 02 “等我干IT发财了,我就买房和你结婚.” ...
- Nginx防hashdos模块使用帮助
经过上周一周朋友们帮忙测试和bug fix,nginx_http_hashdos_module已经达到可以线上使用的水平,下面是使用记录. 下载 #wget --no-check-certificat ...
- Java中Map根据键值(key)或者值(value)进行排序实现
我们都知道,java中的Map结构是key->value键值对存储的,而且根据Map的特性,同一个Map中 不存在两个Key相同的元素,而value不存在这个限制.换句话说,在同一个Map中Ke ...
- SVG绘制图形
一.SVG介绍 1.SVG指可伸缩矢量图片 2.SVG用来定义用于网络的基于矢量的图形 3.SVG使用XML格式定义图形 4.SVG图像在放大或改变尺寸的情况下其图形质量不会有损失 5.SVG是万维网 ...
- Python datetime.md
datetime datetime模块包含了一些用于时间解析.格式化.计算的函数. Times 时间值由time类来表示, Times有小时, 分, 秒和微秒属性. 以及包含时区信息. 初始化time ...
- Concurrent包学习之 BlockingQueue源码学习
上一篇学习了ExecutorService和其它相关类的源码,本篇要学习的BlockingQueue中的源码,as always,先上类图 其实继承(实现)的层次比较简单,我们只要需要先学习一下Blo ...