面向对象第一次练手-------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 ...
随机推荐
- 使用 Azure PowerShell 模块创建和管理 Windows VM
Azure 虚拟机提供完全可配置的灵活计算环境. 本教程介绍 Azure 虚拟机的基本部署项目,例如选择 VM 大小.选择 VM 映像和部署 VM. 你将学习如何执行以下操作: 创建并连接到 VM 选 ...
- js经典应用
一.js字符串转数字: 1.parseInt()和parseFloat()两个转换函数: 2.强制类型转换,Number(value)——把给定的值转换成数字(可以是整数或浮点数): 3.利用js变量 ...
- Java语言的主要特点
Java语言有很多的优点,可靠.安全.编译和解释型语言.分布式.多线程.完全面向对象.与平台无关性等等. 与平台无关性 Java语言最大的优势在于与平台无关性,也就是可以跨平台使用. 绝大多数的编程语 ...
- selenium-各种定位方法
selenium各种定位方法. https://www.red-gate.com/simple-talk/wp-content/uploads/imported/1269-Locators_table ...
- supervisor 使用系列之一
supervisor 使用系列之一 前几年自己用PHP写过一个服务守护的脚本,初步实现了被守护脚本的状态监控.优雅杀死.以及自动重启的功能.面试的时候也有问到,为什么不使用supervisor这个工具 ...
- 2018.09.01 09:08 Genesis
Nothing to think about, I don't know where to start, the mastery of learning is not an easy task, yo ...
- Beta阶段第三次冲刺
Beta阶段第三次冲刺 严格按照Git标准来,组员有上传Git的才有贡献分没有的为0 代码签入图 1.part1 -站立式会议照片 2.part2 -项目燃尽图 3.part3 -项目进展 1.正在进 ...
- Android 生态消息推送平台介绍
一.手机厂商平台 华为消息推送服务 华为推送(Push)是为开发者提供的消息推送平台,建立了从云端到手机端的消息推送通道,使应用可以将最新信息及时通知用户,从而构筑良好的用户关系,提升用户的感知和活跃 ...
- python spawnv用法
test.py import os import string def run(program, *args): file = program result = os.spawnv(os.P_WAIT ...
- Winfrom 使用WCF 实现双工通讯
实现双工通讯主要分三步. 通信接口的定义: 被调用接口的实现 双工通道的建立 请先引用DLL(CSDN的代码编辑器真尼玛蛋疼) 整个解决方案的结构 1.通信接口的定义: 服务端调用客户端接口IServ ...