java中init怎么用
怎么把getter值赋值数组?
怎么把getter值赋值数组?
getter值赋值数组的方法如下:
一、setter和getter的一般写法
setter和getter器可以说是一个类最基本的东西,任何一门面向对象的语言,都又这个概念,C 、java等等。因为setter和getter是对面向对象语言封装的最基本的支持。
在Objective-C的setter和getter器,当然也和一般的语言没有什么不同。只不过,添加了一些自己的特性。
比如有一个实例变量:int age;
先在.h文件中声明setter和getter器
[plain]view plaincopy
-(void)setAge:(int)newAge;
-(int)age;
然后在.m文件中具体实现
[plain]view plaincopy
-(void)setAge:(int)newAge
{
agenewAge;
}
-(int)age
{
returnage;
}
可以看出来,在Objective-C中setter器没什么区别,不过getter器的方法名缺少了get,因为get...在Objective-C有别的用处,所以getter器直接写的就是变量名。
二、getter和setter 的调用方法
一般的调用方法,是传统的带中括号[ ]的调用方法,比如
[html]view plaincopy
//比如上面的声明是一个Person类
Person*person[[Personalloc]init];
[personsetAge:13];
intage[personage];
点调用的方式
[html]view plaincopy
//点调用
;//.调用出现在号左边,相当于setter
intage调用出现在号的右边,相当于getter
NSLog(@%i,);//这也是getter
三、setter和getter的改进写法
每次要为一个属性写上getter和setter,不得不手十分麻烦,所以有了更简单的写法,
在.h文件里,直接这样写,表示声明了一个实例属性和它的getter和setter器
[plain]view plaincopy
;
然后在.m文件中这样写,表示实现setteer和getter
[plain]view plaincopy
;
这样,就可以和以前一样调用getter和setter了。
四、setter和getter的改进优化
可以看到,getter器的方法名直接就是变量名,方法名和变量名一样,容易让人迷糊,所以,可以这样优化。
在.h文件中依然这样声明
[html]view plaincopy
;
在.m文件中,这样去写,
[html]view plaincopy
_age;//加上一个_
//这么,我们就可以去使用_age和使用age一样
-(void)show
{
NSLog(@%i,_age);
}
五、@property的属性
可以使用属性来规定@property,设定的方式如下:
(attribute1[,attrubute2,...])。
举个例子:
[plain]view plaincopy
(nonatomic,strong)Engine*engine;
如果你在@property设置了属性,如果你使用@synthesize ,那么它会自动帮你完成这些属性的实现,如果你是自己手动的去完成实现的话,那么,你必须自己写出这些属性的实现。
(1)、设置访问方法的名字
默认的getter和setter器的名称是和变量名关联的,一定是setVirableName和virableName,比如上面的变量age,setter是setAge,getter是age。
可以通过设置@property中的setter和getter属性来修改setter和getter器的方法名。
gettergetterName
settersetterName
举个例子:
[html]view plaincopy
(gettershow1,settershow2:)intage;//现在,它的getter和setter的方法名字就变了
注意:如果你设置了readonly属性的话,那么你就不应该设置setter属性,要不然会给出一个编译器的警告。
(2)、设置只读或读写
下面两个属性很好理解,
readwrite:表示既有getter,也有setter
readonly:表示只有getter,没有setter
这两个属性是互相排斥的,只能存在一个。
(3)、定义setter的语义
下面的属性指定setter语义设置访问器。他们是互相排斥的。
strong:指定有很强的(拥有)关系到目标对象。
weak:指定有弱(non-owning)关系到目标对象。如果目的地对象销毁,属性值将自动设置为nil。(弱属性不支持OS X上的v10.6和iOS 4,使用指定取而代之)。
copy:调用原始对象的copy()方法,创建一个原始对象的副本,用于分配给新的引用。原始的对象在调用release方法。当然这个属性只用于实现了NSCopying协议的对象类型。
assign:指定使用简单的赋值的setter。这个属性是违约。 使用这个属性对于标量的类型(如NSInteger和CGRect等);
retain: 指定retain应该调用对象上的。原始的对象在调用release。在OS X v10.6和之后,您可以使用这个关键字用于内存管理方面。
(4)、访问属性的线程安全
nonatomic:表示不考虑线程安全
为什么以config形式配置数据库连接?
因为如果将数据库连接配置成config,能够符合包的类型需求,能够更方便的进行编辑和应用。
将数据库连接配置成config,config对象对应于类,此类位于servlet-api.jar包中。
需要注意的 VS2005 在IDE模式下会将信息写入 *,并且在程序关闭时覆写该文件,因此您可能看不到您写入的配置数据,只要在资源管理其中执行 *.exe 文件,您就可以在 * 文件中看到结果了。
config对象的几个方法:
(1)public String getParameter(String name)
返回制定的名称name初始化参数的值,如果参数不存在则返回null。
(2)public java.util.Enumeration getinitParameterNames()
得到所有初始化参数名称的枚举。
(3)public ServletContext getServletContext()
返回Servlet或JSP页面所属的ServletContext的一个引用。
(4)public String getServletName()
返回Servlet实例或JSP页面的名称,此名称可以在Web应用部署描述文件中指定,对于一个未注册(也就是未命名)Servlet实例或JSP页面,将返回该Servlet类的类名。
在网站开发中,数据库操作是经常要用到的操作,中一般做法是在中配置数据库连接代码,然后在程序中调用数据库连接代码,这样做的好处就是当数据库连接代码需要改变的时候,我们只要修改中的数据库连接代码即可,而不必在修改每一个页面中的数据库连接代码。
在中有两种配置数据库连接代码的方式,它们分别是 appSettings 和 connectionStrings 。在使用 appSettings 和 connectionStrings 配置数据库连接代码时,可分别在 ltconfigurationgt 下添加如下代码:
1. appSettings
lt appSettings gt
lt add key #34conn#34 value #34server服务器名database数据库名uid用户名password密码#34 /gt
lt/ appSettings gt
2. connectionStrings
lt connectionStrings gt
lt add name #34conn#34 connectionString #34server服务器名database数据库名uid用户名password密码#34 providerName ##34 /gt
lt/ connectionStrings gt
appSettings 和 connectionStrings 的区别:(摘自)
(1) appSettings 是在 2003 中常用的,connectionStrings 是在 2005 中常用的;
(2) 使用 connectionStrings 的好处:
第一,可将连接字符串加密,使用MS的一个加密工具即可;
第二,可直接绑定数据源控件,而不必写代码读出来再赋值给控件;
第三,可方便的更换数据库平台,如换为 Oracle 数据库,只需要修改 providerName。
(3) 写在 appSettings 中用 [#34keyname#34] 获取数据库连接代码值;写在 connectionStrings 中用 [#34name#34] 获取数据库连接代码值。
通过连接程序和SQLServer数据库的连接字符串:
connectionString #34server(local)databaseDemointegrated securitytrue#34
直接将连接字符串放在程序中的缺点:多次重复,违反了DRY(Don‘t Repeat Yourself)原则如要修改连接字符串就要修改代码。
最好的办法是将连接字符串写在中,
(1)具体步骤如下:
添加文件:添加→新建项→常规→应用程序配置文件。是.Net的通用配置文件,在中也同样使用。
在中添加connectionStrings段,添加一个add项。用name属性起一个名字(比如 ConnStr ),connectionString属性指定连接字符串。
如下:
ltconnectionStringsgt
ltadd name#34ConnStr #34 connectionString#34server(local)databasektvIntegrated Securitytrue#34/gt
lt/connectionStringsgt
注意:一个程序可以添加多个连接字符串
那么如何在程序中读取配置文件中添加的这个连接字符串呢?
(2)使用ConfigurationManager类读取配置文件中的连接字符串
必须要先在引用中添加程序集的引用。
添加引用后可以使用空间下的ConfigurationManager类了。(一般写在SqlHelp类中)
string [#34ConnStr#34].ConnectionString //读取配置文件中的连接字符串
using(SqlConnection conn new SqlConnection(connectString))
{
()
}
通过上面的总结,我们不难得到:
把连接字符串写到配置文件里的优点:避免了连接字符串放在程序中的缺点,每次连接数据库时都要重复粘贴一长串的连接字符串。如果哪天我们数据库服务器的IP改动了,我们只需要修改程序配置文件(***)中的数据库的IP就好了,修改起来非常的方便。