Android基础

在开发中常用到类型转换。
1.long与int直接转换
long bigValue = 99L;
int squashed = (int)(bigValue);
2.字符串转换其它类型
整数=Integer.parseInt(字符串)
小数= Double. parseDouble (字符串)
3.其它类型转字符串

字符串=String.valueOf(其它类型)

字符串比较不要用==,而是用字符串比较方法 equals.

声明两个类型是编辑框的变量:
EditText etFirst=(EditText)findViewById(R.id.etFirst);
EditText etSecond=(EditText)findViewById(R.id.etSecond);
还有一个是文本框的变量:
TextView tvResult=(TextView)findViewById(R.id.tvResult);
注意我们在程序中引用 View 时,使用方法 findViewById(),就是通过 view 的 Id 找到这
个 View,Id 的名称的获得方式为:R.id.你定义的名称。注意 findViewById()前面要加上强类
型转换的类型名称。这样可以操作 View 了。

定义两个字符串变量,它们的值分别为用户填写在编辑框里的内容,取编辑框内容的方法为:
编辑框名称.getText(),后面加上.toString()是把内容转换成字符串:
String strFirst=etFirst.getText().toString();
String strSecond=etSecond.getText().toString();
取到编辑框的内容并且存放在字符串变量里后,还要赋值到 double 型变量里才能进行运算,我们用上
面学习的字符串转换小数的方法:
numFirst=Double. parseDouble (strFrist);
numSecond=Double. parseDouble (strSecond);

设置TextView的值double result=numFirst+numSecond;
tvResult.setText(String. valueOf (result));

Java 提供了一种异常处理模型,它使您能检查异常并进行相应的处理。它实现的是
异常处理的抓抛模型。使用此模型,您只需要注意有必要加以处理的异常情况。下面是
Java语言中的异常处理块的模型:
try{
//放置可能出现异常的代码
}catch(Exception1 el){
//这里进行异常处理
}
finally{
//不管是否有异常发生,始终执行这个代码块
}
1 1 : try 块
try 块由一组可执行语句组成,在执行它们时可能会抛出异常。
也就是说: 在try 语句块中包含可能会产生异常的语句
会抛出一个异常,原因是试图用0 去除一个数。程序会被成功编译,但当运行该程序时,
程序将会发生异常而中断,异常可在catch块中被捕获
2 2 : catch 块
catch 块,从其名称就可以看出, 是用来捕获并处理try 中抛出的异常的代码块。没有
try 块,catch 块不能单独存在。下面是catch 块的语法
try{
}catch(异常类型 e){
}
这里,e 是异常类型类的对象,利用这一对象,我们可以输出这一异常的详细信息

catch (Exception exc)
{
Toast. makeText (getApplicationContext(), exc.getMessage(),Toast. LENGTH_LONG ).show();
}
3 :finally 块
finally 块表示: 无论是否出现异常,都会运行的块
通常在 finally 块中可以编写资源返还给系统的语句,通常,这些语句包括但不限于:
(1)释放动态分配的内存块:
(2)关闭文件;
(3)关闭数据库结果集;
(4)关闭与数据库建立的连接;
它紧跟着最后一个块,是可选的,不论是否抛出异常,finally 块总会被执行。

Android Studio 面向对象 初步
3.6.1 类 与对象
现代编程使用面向对象技术,是把现实的世界对象引用到编程技术上。我们通过一个
例子来描述,在程序上,把“人”作为一个类(class),“人”这个类有一些属性,如姓名、
年龄等等;还有一些行为,如说话定义为方法。方法就是对象所具有的动态功能。方法可
以有参数,参数分实参和形参。形参就是形式参数的意思,是在定义方法名的时候使用的
参数,用来标识方法接收的参数类型,在调用该方法时传入。实参就是实际参数的意思,
是在调用方法时传递给该方法的实际参数。
一个完整的Java 类通常由下面六个部分组成:
包定义语句
import语句
类定义{
成员变量
构造方法
成员方法
}
在app\java\com.mycompany.myjava上单击右键,选择New->Java Class,填写类名
Person,定义的类为:
package com.mycompany.myjava;
public class Person {
private String Name;
private int Age;
public String getName() {
retu rn Name;
}
public void setName(String name) {
Name = name;
}
public int getAge() {
return Age;
}
public void setAge( int age) {
Age = age;
 }
public String Talk()
{
String speak=" " 我是 " "+ this s.getName()+ ", 我今年
" "+String. valueOf ( this.getAge());
return speak;
}
}
定义了“人”这个类,如何使用它呢?如果有小张、小李、老王等等具体的人,就不必一
一定义这些属性和方法了,小张、小李、老王就是人这个类的对象,即使有无数个对象,
也可以使用类的属性和方法。
Java 语言允许对类中定义的各种属性和方法进行访问控制,即规定不同的保护等级来
限制对它们的使用。Java 语言为对类中的属性和方法进行有效地访问控制,将它们分为四
个等级:private, 无修饰符, protected, public,具体规则如下:
一个protected 方法或变量可以从同一个包中的类当中的任何方法进行访问,也可以
是从任何子类中的任何方法进行访问。当它适合于一个类的子类但不是不相关的类时,就
可以使用这种受保护访问来访问成员。
3.6.2 使用 类
前面学习了如何定义一个类,下面来学习如何使用一个类。首先在
app\res\layout\content_main.xml里新增view:
< LinearLayout
android :orient ation= "horizontal"
android :layout_width= "match_parent"
android :layout_height= "wrap_content" >
< TextView
android :text=" " 姓名:" "
android :layout_width= "wrap_content"
android :layout_height= "wrap_content" />
< EditText
android :id= "@+id/etName"
android :layout_width= "60dp"
 android :layout_height= "wrap_content" />
< TextView
android :text=" " 年龄:" "
android :layout_width= "wrap_content"
android :layout_height= "wrap_content" />
< EditText t
android :id= "@+id/etAge"
android :layout_width= "60dp"
android :layout_height= "wrap_content" />
< Button
android :onClick= "btnTalkClick"
android :text=" " 说话" "
android :layout_width= "wrap_content"
android :l ayout_height= "wrap_content" />
</ LinearLayout>
< TextView
android :id= "@+id/tvTalk"
android :layout_width= "wrap_content"
android :layout_height= "wrap_content" />
1 .new 关键字
那么怎么来使用这个类呢:在你可以使用变量之前,实际内存必须被分配。这是通过使用
关键字new 来实现的。
Person person= new Person();
2 . 如何使用对象中的属性和方法
要调用对象中的属性和方法,使用“. .”操作符。
person.setName(etName.getText().toString());
3 .this 关键字
关键字this是用来指向当前对象或类实例的。
3.6.3 Java 中的继承
1. .extends 关键字
继承关系使用extends 关键字,比如女人类和男人类继承Person类,具有Person 所拥
有的所有变量及方法,还可以定义自己的属性和方法。
2. 关键字 super
关键字super 可被用来引用该类的父类,它被用来引用父类的成员变量或方法。父类
行为被调用,就好象该行为是本类的行为一样,而且调用行为不必发生在父类中,它能自
动向上层类追溯。
super 关键字的功能:
(1)点取父类中被子类隐藏了的数据成员
(2)点取已经覆盖了的方法
(3)作为方法名表示父类构造方法
请注意,super.method()格式的调用,如果对象已经具有父类类型,那么它的方法的整
个行为都将被调用,也包括其所有负面效果。该方法不必在父类中定义,它也可以从某些
祖先类中继承。也就是说可以从父类的父类去获取,具有追溯性,一直向上去找,直到找
到为止,这是一个很重要的特点。
3. 调用父类构造方法
在许多情况下,使用默认构造方法来对父类对象进行初始化,当然也可以使用super来显示
调用父类的构造方法。
注意:无论是super 还是this ,都必须放在构造方法的第一行。
通常要定义一个带参数的构造方法,并要使用这些参数来控制一个对象的父类部分的构
造。可能通过从子类构造方法的第一行调用关键字super的手段调用一个特殊的父类构造方
法作为子类初始化的一部分。要控制具体的构造方法的调用,必须给super()提供合适的参
数。当不调用带参数的super时,缺省的父类构造方法(即,带0 个参数的构造方法)被
隐含地调用。在这种情况下,如果没有缺省的父类构造方法,将导致编译错误。当被使用
时,super 或this 必须被放在构造方法的第一行。显然,两者不能被放在一个单独行中,
但这种情况事实上不是一个问题。如果写一个构造方法,它既没有调用super(…)也没有调
用this(…),编译器自动插入一个调用到父类构造方法中,而不带参数。其它构造方法也能
调用super(…)或this(…),调用一个static方法和构造方法的数据链。最终发生的是父类构
造方法(可能几个)将在链中的任何子类构造方法前执行。
3.6.4 包
为便于管理数目众多的类,Java 语言中引入了“包”的概念。包是类、接口或其它包
的集合,包主要用来将类组织起来成为组,从而对类进行管理。包对于下列工作非常有
用,包允许您将包含类代码的文件组织起来,易于查找和使用适当的类;包不止是包含类
和接口,还能够包含其它包。形成层次的包空间;它有助于避免命名冲突。当您使用很多
类时,确保类和方法名称的唯一性是非常困难的。包能够形成层次命名空间,缩小了名称
冲突的范围,易于管理名称。
将多个功能相关的类定义到一个“包”中,以解决命名冲突、引用不方便、安全性等
问题。就好似当今的户籍制度,每个公民除有自己的名字“张三”、“李四”外还被规定
了他的户籍地。假定有两个人都叫张三,只称呼名字就无法区分他们,但如果事先登记他
们的户籍分别在北京和上海,就可以很容易的用“北京的张三”、“上海的张三”将他们
区分开来。如果北京市仍有多个张三,还可以细分为“北京市.海淀区的张三”、“北京市.
西城区.平安大街的张三”等等,直到能惟一标识每个“张三”为止。
简而言之: 从逻辑上讲,包是一组相关类的集合;从物理上讲,同包即同目录。
用package语句来实现包的定义。package 语句必须作为Java 源文件的第一条语句,指
明该文件中定义的类所在的包。若缺省该语句,则指定为无名包,其语法格式为:
package pkg1[.pkg2[.pkg3…]]; //“[]”表示可选
Java 编译器把包对应于文件系统的目录管理,因此包也可以嵌套使用,即一个包中
可以含有类的定义也可以含有子包,其嵌套层数没有限制。package 语句中,用‘.’来指
明包的层次;Java 语言要求包声明的层次和实际保存类的字节码文件的目录结构存在对应
关系,以便将来使用该类时能通过包名(也就是目录名)查找到所需要的类文件。简单地
说就是包的层次结构需要和文件夹的层次对应。
注意:每个源文件只有一个包的声明,而且包名应该全部小写。
为了能够使用某一个包的成员,我们需要在Java 程序中明确导入该包。使用
“import”语句可完成此功能。在java 源文件中import 语句应位于package 语句之后,所
有类的定义之前,可以有0~多条,其语法格式为:
import package1[.package2…].(classname|*);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fufuhong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值