首页 > 代码库 > 老马,来壶烧酒
老马,来壶烧酒
我从来不后悔自己的决定,八月份离开了生活一年多的桂林,现在在北大青鸟学编程,总觉得吧,人总的有一份为之追求的事,也就是经过复杂之后才会真正懂得简单的好处,可能在二十岁的年龄阶段说这些话,未免有些“做”,但总归来说,有一种这样的心境,利弊取舍,归根结底还是看自己的怎么去看待自己的位置吧。
接下来,言归正传,八月份入学北大青鸟,从学JAVA语言那一天起,坚持每天十个小时以上的码代码时间,这个产业门槛低,门槛低有门槛低的好处,同时也有也在告诉着你,你必须比别人努力十倍,百倍,才能被市场所接受,如果说我不看重工资那是假的,但是我更享受于一种创造,那种由无到有的一种感觉,对,那种可以被客户接受,认同的感觉,我相信任何一份工作都是以这个为起点,当然实质性内容的话,得因人而异。
11月4日,学完了类和对象,紧接着进行了前面while;do while;for;双重for;数组的插入;的测试,当要我用笔把代码一行一行写出来的时候,我彻底的发现了我自己的薄弱之处,原来假象一直都存在着,我原本以为我自己能够轻松的应对这次的测试,可是不尽人意,我没有头绪,尽管我每天花那么长的时间敲代码,可是你应该知道有些东西,得要有那个思维,没那个思维模式,真的很难想得出来,凌晨经常是卡壳,碰到一个问题,始终想不出该如何去解决,萌生一个好想法,却不知道该用哪些代码去敲,我从未怀疑过自己比别人差。
11月5日,因为发现自己的薄弱之处是基础没打扎实,用一晚上跟一上午的时间把课本上的2到11章的习题都做了一遍,一些知识点也记载了下来,当自己的笔记,也养成了每写一行代码写一行注释的习惯,因为自己前期自学到后面去了,前面的一些知识点自以为掌握了,现在回过头来看自己当初的代码,很多漏洞都出来了,例如判断结构里面原本只能判断3个值得,我输入4个值也能进去,例如原本是只能输入数字进去,我输进去一个字符就报错,这就是一些问题所在,对于代码的不理解,而且想字符串类型强制转换成 char类型,一时间,许多问题都暴露在了眼前。
11月7日昨晚上因为今天上午是休假,弄到了凌晨三点多,弄出了一个客户信息管理系统,主要熟练的是方法的调用,还有一个人机猜拳没有弄出来,问题现在很大,还有很多地方需要弄明白,正好,这两天是周末,又可以晚上熬通宵了。
2.0变量、数据类型和运算符
变量是一个数据储存空间的表示。
变量时储存数据的一个基本单元,不同的变量相互独立。
使用声明的变量名就是使用变量对应的内存空间中存储的数据。
算术运算符>关系运算符>逻辑运算符>赋值运算符
3.0选择结构(一)
If(条件){
代码块
};
需要先判断条件,条件满足后执行
程序执行时,先判断条件。当结果为true时,程序先执行大括号里的代码块,再执行if结构后面的代码块。当结果为false时,不执行大括号里的代码块,而执行if结构后面的代码。
Public class Demo{
Public static void main(String args[]){
//语句1;
//语句2;
If(条件){
//语句3;
}
语句4;
}
}
程序开始执行后,首先执行语句1和语句2,然后对条件进行判断。如果条件成立,则执行语句3,然后跳出if结构块,执行语句4,。如果不成立,则语句3不执行,直接执行语句4.
If-else选择结构
If(条件){
代码块1
}else{
代码块2
}
如果XX,就XX;否则,就XX.
Int random = (int)(Math.random()*10); //产生十个随机数 (random) 随机的
多重if选择结构,多重选择结构在解决需要判断的条件是连续的区间时有很大的优势。
If(条件1){
代码1
}else if(条件2){
代码2
}else{
代码3
}
程序判断条件1,如果成立,则执行代码块1,然后直接跳出这个多重if选择结构,执行它后面的代码。这种情况下,代码块2的代码块3都不会被执行。如果条件1不成立,则判断条件2;如果条件2成立,则执行代码块2,然后跳出这个多重if选择结构,执行它后面的代码;如果多重if选择结构中的所有条件之间只是简单的互斥,不存在连续的关系,则条件没有顺序的要求。
嵌套if选择结构
If(条件1){
If(条件2){
代码块1
}else{
代码块2
}
}else{
代码3
}
只有当满足外层的if选择结构的条件时,才会判断内层的if的条件
Else总是与它前面最近的那个缺少else的if配对。
04章switch选择结构
等值判断与区间判断的区别
Switch(表达式){
Case 常量1:
//代码1;
Break;
Case 常量2:
//代码2;
Break;
Case 常量3:
//代码3;
Break;
Default:
//代码n;
Break;
}
当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码,如果没有任何一个case 后的常量与switch后的小括号中的值相等,则执行switch末尾部分的default块中的代码。
Switch选择结构只能用于判断一个整形变量或表达式是否等于某个整数值的或者一个字符型变量或表达式是否等于某个字符的情况,并且每一个case后面的常量值都不同,而多重if选择结构即可以用于判断条件是等值的情况,也可以用于判断条件是区间的情况。
Switch选择结构只能用于等值条件判断的情况
当需要多重分支并且条件判断是等值判断的情况下,使用switch选择结构代替多重if选择结构会更简单,代码结构更清晰易读。
If(input.hasNextInt()==true){
}else{
System.out.println(“请输入正确的数字”);
}
通过调用Scanner对象的hasNextInt()方法,来判断用户从键盘上输入的字符是否合法;如果用户输入的是数字,则根据输入的具体的数值跳转到相应的菜单。(程序异常)
05 循环结构(一)
While(循环结构):
我们可以从循环条件跟循环操作两个角度考虑,即循环就是“在什么条件成立时不断地做什么事情”;
循环条件满足,则执行循环操作,当条件不满足的时候,即循环操作停止.
循环条件是一个表达式,它的值为boolean类型,即true或fasle,{}中的语句称为循环操作,又称之为循环体;
特点:先判断,后执行;
Do-while(循环结构):
无论如何循环都会先执行一次,再判断循环条件,决定是否继续执行;
执行一遍循环操作,再判断循环条件,如果循环条件满足,则循环继续执行,否则退出循环
如果条件设置为boolean类型,条件判断成立后,则必须在输出尾赋值为真
循环结构由循环条件和循环操作构成,只要满足循环条件,循环操作就会反复执行;
捕捉:分析循环条件和循环操作,套用循环的语法写出代码,检查循环能否退出;
注意点:循环变量的初值、循环操作中对循环变量值的改变和循环条件三者间的关系;确保循环次数正确,避免出现“死循环”;
06循环结构(二)
在解决有固定循环次数的问题时,可以首选for循环结构
For循环结构4个部分:
初始部分
循环体
迭代部分
循环条件
For(表达式1;表达式2;表达式3){
//循环体
}
表达式1:赋值语句,为循环变量赋初值
表达式2:条件语句,循环结构的循环条件
表达式是3:赋值语句,循环结构的迭代部分,通常用来修改循环变量的值
条件=true
For(①初始部分;②条件判断;④改变循环变量值){
③循环操作;循环体被执行
}
根据循环条件判断结果
如果为true,则执行循环体
如果为false,则退出循环
表达式1只执行一次,表达式2跟表达式3则可能会执行多次,循环体可能多次执行,也可能一次也不执行
Break语句不仅可以用在 for循环结构中,也可以用在 while和do-while循环结构中,break语句通常与if条件语句一起使用
Break语句用于终止某个循环,程序跳转到循环体外的下一条语句
Continue语句是用于跳出本次循环,进入下一次循环的语句
在For循环结构中,Continue语句使程序使程序先跳转到迭代部分,然后判断循环条件,如果为true则继续下一次循环,否则终止循环。
0.8数组
数据类型操作往往是单个的数据,有时候,需要对数据类型相同,用途相近的一组数据集中进行处理,就非常繁琐,所以用数组集中操作数据比使用多个变量操作数据便捷得多。
数组就是一个变量,用于将相同数据类型的数据储存在内存中(声明一个变量就是在内存空间分配一块合适的空间,然后将数据存储在这个空间中)数组中的每一个数据元素都属于同一类型数据
数组的基本要素:
标示符:
数组元素:数组标示符后,要向数组存放数据,而这些数据就称为数组元素
数组下标:为了得到正确的数组下标,就需要对他们进行编号,方便计算机存取
元素类型:
数组中每个元素都可以通过下标来访问
1 声明数组
数据类型[]数组名
2.分配空间(要为数组分配空间,这样数组的每一个元素才等对应一个存储单元)
数组名[] = new 数据类型[数组长度]
语法
数据类型 数组名[] = new 数据类型[数组长度];
数组排序:Arrays.sort(数组名);
数组经常与选择结构,循环结构搭配来解决问题
If(数组名[] .compareTolgnoreCace(用户接收姓名)>0){ //字符串比较
原数组下标=数组下标(index=i);
Break;
}
0.9循环结构进阶
二重循环就是一个循环体内又包含另一个完整的循环结构
//while与while循环嵌套
While(循环条件1){
//循环操作1
While(循环条件2){
//循环操作2;
}
}
//do-while与 do-while循环嵌套
Do{
//循环操作1
Do{
//循环操作2
}while(循环条件1);
}while(循环条件2);
//for与for循环嵌套
For(循环条件1){
//循环操作1
For(循环条件2){
//循环操作2
}
}
//while与for循环嵌套
While(循环条件1){
//循环操作1
For(循环条件2){
//循环操作2
}
}
循环条件1和循环操作1对应的循环称为外层循环,循环条件2和循环操作2对应的循环称为内层循环,内层循环结束后才执行外层循环的语句,外层循环变化一遍,内层循环变量要变化一次;
Continue语句是跳出本次循环,进入下一次循环,而break语句是跳出本层循环,即提前结束本层循环,执行循环下面的语句;
11.0
类与对象
“世界是由不同类别的事情构成的,当提到某一个分类时,就可以找到该分类的一个具体的事物,而当我们提到这些具体的概念时,就会联想起他们所对应的一些类别,而这些现实世界中客观存在的事物就称之为对象!”
分类就是以事物的性质,特点,用途等作为区分的标准,将符合同一标准的事物归为一类,不同的则区分开来;
“根据待解决的问题的需要,选择合适的标准或角度对问题中出现的事物进行分类”
在面向对象中,对象时用来描述客观事物的一个实体
静态特征是可以用某些数据来描述的特征
动态特征是对象所表现的行为或对象所具有的功能
对象的属性 -------à静态特征(属性是用来描述对象静态特征的一个数据库)
对象的方法---------à动态特诊(方法是用来描述对象动态特征(行为)的一个序列动作)
构成对象的两个主要因素
用来描述客观事物的一个实体,由一组属性(对象)和方法构成
类是多个对象进行综合抽象的结果,是实体对象的概念模型,而一个对象是一个类的实例;
定义类就是抽取同类实体的共性自定义的一种数据类型
类是程序的基本单元
Public class<类名>{
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
….
属性N 的类型 属性 N;
//定义方法部分
方法1;
方法2;
…..
方法N;
}
定义类名
Public class 类名{
}
类的属性
在类的主体当中定义变量来描述类所具有的静态特征(属性);,这些变量称为类的成员变量
编写类的方法
在类中定义方法来描述类所具有的行为,这些方法就称之为类的成员方法。
特指名词识别对象
负数名词,泛指名词识别类
Public String showCenter(){
方法体
}
访问修饰符 返回值 方法名(){
方法体
}
访问修饰符限制了访问该方法的范围,返回值类型是方法执行后返回结果的类型,这个类型可以使基本类型,或者是引用类型,也可以没有返回值,此时必须使用void来描述。
类的作用就是创建对象————>类的实例化过程
每个对象的属性值可能是不一样的,所以在创建对象后再给它的数据成员赋值
类名 对象名 = new 类名();
对象名.属性 //引用对象的属性
对象名. 方法() //引用对象的方法
类与对象总结:
对象时用来描述客观事物的一个实体,由一组属性和方法构成
类定义了对象将会拥有的特征(属性)和行为(方法)
类和对象的关系式抽象和具体的关系是抽象和具体的关系。类是对象的类型,对象是类的实例。
对象的属性和方法被共同封装在一个类中,相辅相成,不可分割。
老马,来壶烧酒