类和对象
什么是对象
对象就是实际存在的某种类实物个体,也称为实列。它由一组属性和方法构成。
什么是类
而类是对某一种事物的描述。
类和对象的关系
那么它们的关系在于:类是对象的抽象,而对象是类的实列。对象所拥有的特点(属性)和行为(方法)都来源于类。对象的属性和方法被共同封装在类中,相辅相成不可分割。
属性和方法
对象的属性和方法与类中的成员变量和成员函数对应。
属性又分为公有属性和私有属性,公有属性在类中和类外都能调用,而私有属性不能在类以外的函数调用。
面向对象的优点
与人类的思维习惯一致:对象程序设计能够让我们使用“类”来模拟现实世界中的抽象概念,用“对象”来模拟现实世界中的实体,从而用计算机解决现实问题。
信息隐藏,提高了程序的可维护和安全性:封装现实了模块化和信息隐藏,即将类的属性和行为封装在类中,这保证了对它们的修改不会影响到其他对象,有利于维护。同时,封装使得在对象的属性和方法,避免了外部错误对它的影响,提高了安全性。
提高了程序的可重用性:一个类可以创建多个对象,增加了重用性。
如何定义类
类的模板语法:
public class<类名>{
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
.........
属性3的类型 属性3;
//定义方法
方法1;
方法2;
......
方法n;
}
定义类名语法:
public class类名{
}
注意在java中创建一个类,需要使用一个class,一个类名和一对大括号。其中,class是创建类的关键字要给定义的类名,,在class前有一个public,表示"公有"的意思,编写程序时编码要规范。类名通常由多个单词组成,每一个单词首字母大写。
编写类的属性
通过类的主体中定义的变量来描述类所具有的静态特征(属性),这些变量称为类的成员变量。
编写类的方法
通过在类的主体中定义的变量来描述类具有的静态特征(属性),这些变量称为类的成员变量。而类的方法分为有参方法和无参方法创建多个对象实列,增强了重用性。
方法的语法
public (访问修饰符) 返回值类型 方法名(){
//方法体
}
注意,修饰符限制了访问该方法的范围,如public还有其他访问修饰符。返回值类型是方法执行后返回的结果,这个类型可以是基本类型,或者引用类型,也可以没有返回值,没有返回值的时必须用void来描述。方法名应该符合标记符的命名规则。
返回值的基本类型:
类型 | 默认值 |
---|---|
int | 0 |
double | 0.0 |
char | ‘\u0000’ |
boolean | false |
String | null |
类的无参方法
无参方法就是没有参数的方法。
什么是类的方法
java中的函数又叫类的方法,是一段独立的代码块,直接写在类的里面的代码块实现了一个独立的功能,函数的作用就是为了解决代码块的重用性差的问题。在编写类方法时,分为两步完成。
第一步:定义方法名和返回值类型。
第二步:在{}中编写方法的主体部分。
在编写时,要注意以下三个点:
☆ 方法体放在一对大括号中。方法体就是一段程序代码,完成一定的工作。
☆方法名主要在调用这个方法时使用。在java中一般采用骆驼式命名法。
☆方法执行后可能会返回一个结果,该结果的类型称为返回值类型。使用return语句返回值。
☆return有两种用法,跳出方法和返回结果。
return语法:
return 表达式
如果方法没有返回值,则返回值类型为void。因此在编写程序时一定要注意方法声明中返回值的类型和方法体中真正的返回值的类型是否匹配。如果不匹配,编译器就会报错。
方法调用
简单的说,在程序中通过使用方法名称从而执行方法中包含的语句,这一过程就称为方法调用。方法调用语法:
对象名.方法名();
成员变量和局部变量
成员变量:类的方法可以直接使用该类定义的成员变量。如果其他类的方法要访问它,必须要创建该类的对象,然后才能通过操作符“.”来引用。
局部变量:它的作用域仅仅在定义的方法内,因此只有这个方法中能够使用。
作用域的区别:局部变量的作用域只限于定义它的方法,在该方法外无法访问,成员变量的作用域在整个类内部都是可见,所有成员方法都可以使用,还可以在类外部使用成员变量。
初始值不同:对于成员变量,如果类定义中没有给它赋初始值,java会给它一个默认值,int类型为,引用类型为null。局部变量没有默认值所有局部变量必须先赋值后才能使用。
面向对象的好处
面向对象的好处就是:重用性,灵活性,扩展性,比如在类的方法可以实现某个特定的功能,其他的类不需要知道它是如何实现的,知道现实此功能的类和它的方法名,就可以直接调用,而不用重复编码。
带参数的方法
参数分为形参和实参,形参和无参的关系:当形参是基本数据类型的时候,形参所做的修改对实参没有影响。当形参是形参引用数据类型的时候,形参所做修改对实参是影响的(String类型除外)
如何定义带参方法
语法:
<访问修饰符>返回值类型<方法名>(<参数列表>){
//方法的主体
}
☆<访问修饰符>是指该方法允许被访问的权限范围,只是public或private,其中public可以被如何其他代码调用。
☆返回值,返回值类型必须匹配。
☆<方法名>定义的方法的名字,必须要符合标识符。
☆<参数列表>传给方法的参数,各个参数中间用逗号隔开。格式如下:
数据类型 参数1,数据类型 参数2,……数据类型 参数n
注意:调用带参数的方法与调用无参方法的语法是相同的,但是在调用带参数方法时必须传入实际的参数的值。
而形参是在定义方法时对的参数的称呼,实参是在调用方法时传递给方法的实际的值。
包
java中提供了包来管理类,那么如何声明包呢,解释如下:
要声明一个包(package),只要包中包含一个package命令作为一个java源文件的第一条语句就可以了。语法如下:
package 包名;
注意:package是关键字,源文件只能有一个包声明语句,在声明包名字通常由小写字母组成,不能以圆点或结尾。一个唯一包的前缀通常是小写的ASCII字母,并且是一个顶级的域名com edu gov net或org,通常使用组织的网络域名的逆序。例如:
package net.javagroup.mypackage;
包名的后缀部分依机构规范不同时,这类名规范可以特定目录名的组成来区分部门 项目 机器或注册名,例如:
package net.javagroup.research.powerproject;
使用MyEclipse创建包
那么声明之后如何使用创建包,解释如下:
首先使用新建一个项目"packagest",然后选择"File"→"Pcakage"选项。在弹出的"Newjava Package"对话框中,在Name本文框中填写包名。
那么如何导入包,例如语法:
import 包名.类名;
如果要使用到包的某些类多于一个,在使用import导入时,可以使用"包名.*",语法如下:
import 包名.*;
包还有其他的,例如包和目录的关系等,这里就不一 一解释了。
String类字符串
String类提供了大量的操作符的方法如下:
☆获得字符串的长度:length()。
☆比较字符串:equals()。
☆链接字符串:concat()。
☆提取字符串:substring()。
☆搜索字符串:indexOf( )。
☆拆分字符串;split();
字符串的使用 长度调用和字符串的比较,其他占时不做解释。
字符串是由一系列字符组成的序列。使用字符串分为两步,1.定义初始化字符串。2.使用字符串,对字符串进行处理。语法如下:
String s="Hello World"
字符串的长度调用语法:
字符串1.leng();
返回字符串1的长度
字符串比较要用equals(),判断两个字符串的每个字符是否相同,如果相同则返回值为true,如果不相同就返回false。对于字符的大小写会在检查范围内。而有时候会碰到忽略大小写,这时就要使用equalsIgnoreCase()方法。lgnore是"忽略"的意思,这种方法在比较字符串时会忽略字符的大小写。
equals语法:
字符串1.equals(字符串2);
equalsIgnoreCase语法:
字符串1.equalsIgnoreCase(字符串2);
忽略大写小比较字符串1和字符串2。如果都相同,则返回true,如果不相同就返回false。
StringBuffer类
除了使用String类储存字符串之外,还可以使用StringBuffer类储存字符串。StringBuffer也需要两步完成。
1、声明StringBuffer对象并初始化
2、使用StringBuffer对象
下面介绍通常的使用的StringBuffer类提供的方法。语法如下:
字符串1.toString();
将StringBuffer类型的字符串1转化为String类型的对象并返回。例如:
String s1=s2.toString();//转化为String类型
StringBuffer类就暂做此解释。