面向对象第一次练手-------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 ...
随机推荐
- 使用 Chef 自动执行 Azure 虚拟机部署
Chef 是一个强大的工具,用于提供自动化和所需的状态配置. 使用我们的最新 cloud-api 版本,Chef 提供了与 Azure 的无缝集成,使得你能够通过单个命令设置和部署配置状态. 在本文中 ...
- 使用 Azure PowerShell 监视和更新 Windows 虚拟机
Azure 监视使用代理从 Azure VM 收集启动和性能数据,将此数据存储在 Azure 存储中,并使其可供通过门户.Azure PowerShell 模块和 Azure CLI 进行访问. 使用 ...
- python的学习之路day2
1.什么是常量: 常量在程序中是不变的量 但是在python中所有的变量都可以改 注意:为了防止区分错误,所以python中常量使用大写命名 例如: MYSQL_CONNECTION = '192.1 ...
- 【转】Spring学习---SpringIOC容器的初始化过程
[原文]https://www.toutiao.com/i6594400249429623304/ SpringIOC容器的初始化过程 简单来说,IoC容器的初始化是由refresh()方法来启动的, ...
- 【转】Mysql学习---MySQL悲观锁中的排它锁
[原文]https://www.toutiao.com/i6595305814087434760/ 悲观锁中的排它锁. 排它锁关键字:for update 特点:会锁住行或者表,防止其他事务进行修改操 ...
- swiper.js 多图片页面的懒加载lazyLoading
swiper.js官网:http://www.swiper.com.cn/api/Images/2015/0308/213.html 设为true开启图片延迟加载,使preloadImages无效.需 ...
- vagrant特性——基于docker开发环境(docker和vagrant的结合)-2-命令
Docker Commands Docker provider公开了一些额外的vagrant命令,这些命令对于与Docker容器交互非常有用.这有助于你在vagrant之上的工作流程,这样你就可以在底 ...
- HackerRake平台说明和介绍
这是之前调研的时候稍微做了一个大致的总结,现在将其分享出去,感觉放在自己的文档管理库中,用处有限.分享出去,说不定能给一些朋友带来有益的启发. 另外我们团队最近也在考虑开发OJ平台.HackerRak ...
- ipv6导致的域名解析慢,nslookup,lvs,hosts.conf
最近总是反应网站慢,先是查内网环境,又查机房网络环境,再查lvs配置,更查到xen开启导致的网络性能下降 更进一步的查到域名解析慢,最终发现ipv6的默认开启会导致域名解析慢: 而应用服务程序内部大多 ...
- JS 点击元素发ajax请求 打开一个新窗口
JS 点击元素发ajax请求 打开一个新窗口 经常在项目中会碰到这样的需求,点击某个元素后,需要发ajax请求,请求成功以后,开发需要把链接传给前端(或者说请求成功后打开新窗口),前端需要通过新窗口打 ...