赋值语句

封装

丶灬走出姿态 提交于 2020-01-31 22:31:45
3、封装 概述: 隐藏对象的属性的实现细节,仅对外提供公共访问方式 案例: ​ 使用这个案例中 发现了一个问题,通过成员变量可以赋值一些非法的数据。 ​ 赋值前应先进行判断。判断在哪里做比较合适呢? 判断应该定义在student类中,而我们在成员变量的位置不能判断。因为做数据校验,必须要依靠逻辑语句。逻辑语句应该定义在方法中。最终决定在student类中提供一个方法校验。 public void setAge ( int a ) { if ( a < 0 || age > 120 ) { System . out . println ( "你给的年龄有问题" ) ; } else { age = a ; } } 我们给出了方法进行校验,但是,它不用方法,还是直接赋值了。方法就没有起到作用。 就应该要求它必须使用方法 // 创建学生对象 Student s = new Student ( ) ; // 给成员变量赋值 s . setAge ( 18 ) ; s . name = "周十七" ; s . show ( ) ; s . age = - 17 ; s . show ( ) ; } 怎么强制使用方法,不走成员变量? private:关键字可以修饰成员变量和成员方法 注意:被private修饰的成员只能在本类中访问。 private int age ; public class

python基础3 代码格式,赋值,流程控制和函数简介

假装没事ソ 提交于 2020-01-31 00:26:19
1 代码格式 相对于C,java等其他语言,python对代码格式的要去更为严格和重视。这和python的自身特性有关。最重要的一点时通过缩进4格表示代码块的区分,有java基础的朋友门应该知道java通过 { }进行代码块的区分,而python追去的节俭易读则通过缩进完成,除此之外还有其他一些约定俗称的规定以便于代码的阅读 函数定义后空2行 符号前后空2格 较难理解部分使用中文注释 变量名称使用可提示变量对象 如果 if 语句的条件很长,需要分多行来写 闭合大括号、方括号、圆括号结构处于同一等级对齐 每一行代码的长度都限制在 79 个字符以内 … 2赋值语句 1 可用元组完成 X , y = ( 1 , 2 ) #可省略括号 2 可用序列赋值 [ x , y ] = [ 1 , 2 ] 注意: 当左右序列值个数不一样时,程序会报错,但是可用使用 * 避开这个问题 A , b , * c = s 此时,s后部所有多余元素都属于c(返回的是列表),当s只有2个元素时,c为空列表 3流程控制 1. if 一般格式为 if ( 条件 ) : else : 当需要进行多重条件判断时,使用elseif,也可用使用简写elif if ( 条件 ) : elif ( 条件 ) : elif ( 条件 ) : else : 2 while 一般格式为 while (条件 ) :

C#测试题(一)

允我心安 提交于 2020-01-30 22:09:00
C#测试题(一) 1.简答介绍对象的构成,并做出说明 对象的构成:属性,方法,事件, 属性:一个对象与生俱来的,方法:一个对象的主动行为, 事件:一个对象的被动行为 2.C#中15中属性类型分别是哪些 // 值类型 整数8种:byte,sbyte,short,ushort,int,uint,long,ulong, 小数三种:float,double,decimal, // 引用类型 字符串:string,字符型:char,对象类型:object 3、C#属性赋值的四个步骤 ①.看类型,是15种直接赋值 ②.不是15种的等号后空格如果出智能提示,选择需要的分号结束 ③.空格空不出来,new空格选择需要的分号结束,删掉前半个小括号再加上看重载,根据智能提示继续按照上面步骤继续赋值 ④特殊的属性类型,如this.Backcolor=Color.Red; 4.C#在编辑代码中如何区别对象的三个组成部分 扳手为属性,方块为方法,闪电为事件 5.在编辑C#代码中遇到对象的三个组成部分时应该如何处理? 属性(扳手)根据属性赋值的四个步骤进行,方法(方块)删掉前半个小括号然后加上看重载,根据提示进行赋值,事件(闪电)+=两次TAB 6.C#中方法赋值的基本过程详细说明 方法(方块)删掉前半个小括号然后加上看重载,根据提示继续按照属性赋值四个步骤进行赋值, 7.简单介绍装箱和拆箱 装箱

Linux Shell常用技巧(五)

不打扰是莪最后的温柔 提交于 2020-01-28 19:25:40
十一. awk编程: 1. 变量: 在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义。变量的类型可以是数字、字符串。根据使用的不同,未初始化变量的值为0或空白字符串" ",这主要取决于变量应用的上下文。下面为变量的赋值负号列表: 符号 含义 等价形式 = a = 5 a = 5 += a = a + 5 a += 5 -= a = a - 5 a -= 5 *= a = a * 5 a *= 5 /= a = a / 5 a /= 5 %= a = a % 5 a %= 5 ^= a = a ^ 5 a ^= 5 /> awk '$1 ~ /Tom/ {Wage = $2 * $3; print Wage}' filename 该命令将从文件中读取,并查找第一个域字段匹配Tom的记录,再将其第二和第三个字段的乘积赋值给自定义的Wage变量,最后通过print命令将该变量打印输出。 /> awk ' {$5 = 1000 * $3 / $2; print}' filename 在上面的命令中,如果$5不存在,awk将计算表达式1000 * $3 / $2的值,并将其赋值给$5。如果第五个域存在,则用表达式覆盖$5原来的值。 我们同样也可以在命令行中定义自定义的变量,用法如下: /> awk -F: -f awkscript month=4 year=2011

结对编程

一个人想着一个人 提交于 2020-01-28 13:14:19
简介 对伙伴的代码进行审查 合作伙伴: 尉安瑞 伙伴 Coding 参考文章: 谷歌是如何做代码审查的 C++代码审---参考林锐高质量C/C ++ 整天说Code Review重要,你知道应该关注哪些关键点吗? - CSDN博客 一.代码审查表分析 功能模块名称 无环图应用 审查人 Stone 审查日期 2018.4.4  代码名称 DYJ  代码作者 尉安瑞  文件结构 重要性 审查项 结论 头文件和定义文件的名称是否合理? 是    头文件和定义文件的目录结构是否合理? 是    版权和版本声明是否完整? 是  重要 头文件是否使用了 ifndef/define/endif 预处理块? 无  无  头文件中是否只存放“声明”而不存放“定义” 无        程序的版式 重要性 审查项 结论   空行是否得体? 否    代码行内的空格是否得体? 否    长行拆分是否得体? 是    “{” 和 “}” 是否各占一行并且对齐于同一列? 否  重要 一行代码是否只做一件事?如只定义一个变量,只写一条语句。 否  重要 If、for、while、do等语句自占一行,不论执行语句多少都要加 “{}”。 否  重要 在定义变量(或参数)时,是否将修饰符 * 和 & 紧靠变量名?注释是否清晰并且必要? 否  重要 注释是否有错误或者可能导致误解? 无  重要 类结构的public,

C++ primer 笔记(一)

。_饼干妹妹 提交于 2020-01-28 08:22:47
第1章 >> << 输入输出操作符返回 输出流std::cin, std::cout本身 endl输出换行,刷新与设备关联的buffer augument 实参 paremeter 形参 buit-in type 内置类型 manipulator 操纵符 第2章 C++是静态类型语言,编译时执行类型检查 wchar_t =L'a' 16位 float 6位有效数字 double 至少10位有效数字 long double 至少10位有效数字 赋值:对于unsigned越界赋值,结果等于该值对unsigned可能取值个数求模 例如:unsigned char c=336; //实际c=336%256=80 unsigned char c=-1; //实际c=-1%256=255 对于signed越界赋值,由编译器决定实际值 初始化不是赋值,初始化指创建变量并赋值,赋值是擦出当前值赋新值 内置类型初始化:在函数体外定义的变量初始化为0,函数体内定义的不自动初始化。 定义:分配存储空间,还可以指定初值 声明:向程序表明变量的类型,名字 extern声明:当有初始化式时则为定义 非const变量默认为extern,要使const变量能在其他文件中访问,则需显式指定为extern。const默认为定义它的文件的局部变量。 引用必须在定义时初始化,引用一经初始化,就始终指向同一个特定对象。

Linux Shell常用技巧(五)

ⅰ亾dé卋堺 提交于 2020-01-28 04:53:15
十一. awk编程: 1. 变量: 在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义。变量的类型可以是数字、字符串。根据使用的不同,未初始化变量的值为0或空白字符串" ",这主要取决于变量应用的上下文。下面为变量的赋值负号列表: 符号 含义 等价形式 = a = 5 a = 5 += a = a + 5 a += 5 -= a = a - 5 a -= 5 *= a = a * 5 a *= 5 /= a = a / 5 a /= 5 %= a = a % 5 a %= 5 ^= a = a ^ 5 a ^= 5 /> awk '$1 ~ /Tom/ {Wage = $2 * $3; print Wage}' filename 该命令将从文件中读取,并查找第一个域字段匹配Tom的记录,再将其第二和第三个字段的乘积赋值给自定义的Wage变量,最后通过print命令将该变量打印输出。 /> awk ' {$5 = 1000 * $3 / $2; print}' filename 在上面的命令中,如果$5不存在,awk将计算表达式1000 * $3 / $2的值,并将其赋值给$5。如果第五个域存在,则用表达式覆盖$5原来的值。 我们同样也可以在命令行中定义自定义的变量,用法如下: /> awk -F: -f awkscript month=4 year=2011

ES6的一些基本用法

帅比萌擦擦* 提交于 2020-01-26 12:12:45
● let ● variable hoisting ● arrow Function, Lambda表达式 ● Destructuring Assignments 解构赋值 ● 默认参数值 Default Parameters ● 可变参数 ● 解构参数 ● 解构数组 ● 解构对象 ● 遍历 ● Generators ● String Templates ● 快速创建对象 ● 只读变量 ● Sets ● Maps ● Symbols ● WeakMaps ● Promises ● 创建类 ● Modules ● 内置函数 let 使用let声明的变量只在语句块内有效。 "use strict"; function blockBindingDemo(){ let a = 123; var b = 123; if(true){ let a = 456; b = 456; console.log("使用let语句块中的a为" +a);//456 console.log("使用var语句块中的b为" +b) } console.log("使用let语句块外的a为" +a);//123 console.log("使用var语句块外的b为" +b);//456 } blockBindingDemo(); 以上,以let方式声明的变量只在语句块内有效,而以var方式的变量是一个全局变量。

C++基础内容复习

陌路散爱 提交于 2020-01-26 09:50:31
下列语句定义了5个变量: int count; double sales_price,sum; std::string title; Sales_item bookItem; 每个定义都是以 类型说明符 开始,如上int、double、std::string、Sales_item都是类型名,其中int和doubleshi是 内置类型 ,std::string是 标准库定义的类型 (需要#include <string>), Sales_item是 自定义类型 。 ::作用域操作符,含义是右操作符的名字可以在左操作数的作用域中找到 简化std::string 的写法是使用using。 比如使用using std::string; using std:cin;之后,在下面的代码中就可以直接使用string和cin了。 当进行string对象和字符串字面量混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的。 比如,如下s1的初始化时正确的 string item ="what a mess!"; string s1 =item +","; 但是:string s1 ="what a mess!" +","; 就会报错,这个和C#是 完全不一样 的。 虽然任何整数数值都可以作为索引,但是索引的实际数据类型却是unsigned类型的string::size_type

MyBatis源码的学习(19)---如何将jdbc的返回结果resultSet处理为我们想要的java类型

 ̄綄美尐妖づ 提交于 2020-01-25 07:04:09
处理结果集的逻辑:ResultSetHandler---->TypeHandler @Override public <E> List<E> doQuery(MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException { Statement stmt = null; try { Configuration configuration = ms.getConfiguration(); StatementHandler handler = configuration.newStatementHandler(wrapper, ms, parameter, rowBounds, resultHandler, boundSql); //这一步完成connection建立,statement对象的创建,参数的赋值操作 stmt = prepareStatement(handler, ms.getStatementLog()); //我们今天看者一行,如何将jdbc返回的resultSet对象处理为我们想要的java类型 return handler.query(stmt, resultHandler);