对象:就是可以看见,可以摸到的事物。如现实中客观存在的事物就称为对象,在Java世界中,“万物皆对象”,什么意思呢?就是你想的的所有东西的是对象。我们要站在分类学家的角度去思考问题,根据问题解决。
由1.0我们知道了什么是对象,现在我们就来发现我们身边的对象,如老师跟学生,厨师跟顾客,描述客观事物的一个实体,解决问题时,首先要对现实世界中的对象进行分析与归纳,找到哪些是对象与要解决的问题是相关的
对象的静态特征和动态特征分别称为象的属性和方法,它们是构成对象的两个主要因素。其中属性是用来描述对象静态特征的一个数据项,该数据项的值级属性。而方法是用来描述对象动态特征的一个动作序列。
封装如同一个人只能看到一个整体,但看不到里面的东西,就像是心脏、血液、人如果没有这些就能存活,同样封装里面的细节不可缺少属性和方法,对象的属性和方法是相辅相成,不可分割的,它们共同组成了实体对象。所以说对象具有封装性。
对象:具体存着的实物
类:虚拟的抽象的名词,它决定了对象拥有的特点和行为
关系:对象所拥有的特点和行为都来源于类,类是多个对象进行综合抽象的结果,是实体对象的概念模型,而一个对象是一个类的实例。
流程图如下:
类创建的一个实例就是“对象”,它和“现实世界”中的“实例”是一一对应的。
1:定义类名
2:编写类的属性
3:编写类的方法
类名 对象名 = new 类名();
public class <类名>{
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
.......
属性3的类型 属性3;
//定义方法部分
方法1
方法2
.......
方法n
}
//使用两种程序的语法:
对象名.属性 //引用对象的属性
对象名.方法名();//引用对象的方法
’下面就是对模板的实践:
public class School {
String schoolName;
int classNumber;
int labNumber;
public void showCenter(){
System.out.println(schoolName+"培训中心\n"+"配备:"+classNumber+"教"+labNumber+"机");
}
}
以上是定义一个School类,并且定义了三个成员变量:schoolName2、classNumber、labNumber,定义一个类的方法,方法名showCenter()这个方法的作用是显示中心的信息。
下面我们定义一个入口main()
public class InitialSchool{
public static void main(String[]adad) {
School center = new School();
center.showCenter();
center.schoolName = "北京远航";//给schoolName属性赋值
center.classNumber=10;//给classNumber属性赋值
center.labNumber = 10;//给classNumber属性赋值
System.out.println("\n***初始化成员变量后***");
center.showCenter();
}
}
大家都知道,执行程序需要一个入口。因此,像以前一样,在main()方法中编写代码使用School类。
如果方法返回一个字符串,而里面为空(null)那就会是默认值。
Java数据类型的默认值
类 型 | 默 认 值 |
---|---|
int | 0 |
double | 0.0 |
char | “\u0000” |
boolean | false |
String | null |
可以提高程序的使用性,,一个类可以创建多个对象实例,增加了重要性。
对象是用来描述客观事物的一个实体,由一组属性和方法构成。
类定义了对象将会拥有的特征(属性)和行为(方法)。
类和对象的关系是抽象和具体的关系。类是对象的类型,对象是类的实例。
对象的属性和方法被共同封在类中,相辅相成,不可分割。
面向对象程序设计的有点如下。
使用类的步骤如下:(定义类:使用关键字class。创建类的对象:使用关键字new。使用类的属性和方法:使用“.”操作符)。
类数有一组具有相同属性和共同行为的实体抽象而来的,对象执行的操作是通过编写类的方法实现的。类的方法必须包含:1、定义方法名称 2、方法的返回值 3、方法的主体
语法:
public 返回值类型方法名(){
//方法的主体
}
retur 表达式;
public class Shili1 {
String color = "黄色";
//跑方法
public void run() {
System.out.println("正在以0.1米/秒的速度向前奔跑");
}
//叫方法
public void cry() {
System.out.println("大声吼叫!");
}
//抢球方法
public String robBall() {
String ball = "球";
return ball;
}
}
在robBall()方法中,返回值类型是String,因此在方法中必须使用return返回一个字符串。如果方法没有返回值,则返回值类型为void。例如,run()和cry()方法没有返回值,所以返回值类型为void.因此,在编写程序时一定要注意方法声明中返回值的类型和方法体中真正返回值的类型是否匹配。如果不匹配,编译器就会报错。
在类中定义的变量称为类的成员变量,成员变量和方法的局部变量具有不同的使用权限,他们的区别就是成员变量可以在另一个类使用,局部变量只能在该方法使用。
在前面我们已经学习了很多注解:如://单行注解,//块注解,下面我们要学习的是
JavaDoc注解以/**开头.
JavaDoc注解以*/结尾。
每个注解包含一些描述的文本及若干个JavaDoc标签。
JavaDoc标签一般以“@“为前缀,常用JavaDoc标签如下表:
标签 | 含义 | 标签 | 含义 |
---|---|---|---|
@author | 作者名 | @version | 版本标识 |
@parameter | 参数及其意义 | @since | 最早使用该方法/类/接口的JDK版本 |
@return | 返回值 | @throws | 异常类及抛出条件 |
定义类的方法必须包括以下三部分
类的方法调用,使用如下两种形式。
在Java中成员变量和局部变量,它们的作用域各不同。
语法:<访问修饰符>返回值类型<方法名>(<参数列表>){
//方法的主体
}
访问修饰符:指该方法允许被访问的权限范围
返回值类型指方法返回值的类型。如果方法不返回任何值,它应该声明为void类型。
方法名:定义方法的名字,它必须使用合法的标识符
语法:对象名.方法名(参数1,参数2,…,参数n)
注意:先实例化对象,再调用方法。实参的类型、数量、顺序都要与形参一一对应。
public class Example {
String []names = new String[30];
public void addName(String name){
//显示学生姓名
}
public void showName() {
//显示全部学生
}
}
public class Example2 {
public static void main(String[] args) {
Example02 st = new Example02();
Scanner input = new Scanner(System.in);
for(int i = 0;i<5;i++) {
System.out.println("请输入学生姓名:");
String newName = input.next();
st.addName(newName);//调用全部方法并传实参
}
st.showName();//显示全部学生的姓名
}
}
1、方法的返回值类型为void,方法中不能有return语句,
2、不能在方法外部增加写程序逻辑代码
3、方法不能返回多个值
4、不能直接嵌套定义
<访问修饰符>返回类型<方法名>(<参数列表>){
方法的主体
}
简单来说:就是定义并初始化字符串,使用字符串,对字符串进行一些处理。
字符串被作为String类型的对象来处理。它位于java.lang包中生成。语法如下:
//创建一个字符串对象"Hello World"
//语法:
String s = "Hello World";
//创建一个空字符串
String s = new String();
语法与使用如下:
//字符串1.length();
public class Example1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String uname,pwd;
System.out.print("请输入用户名:");
uname = input.next();
System.out.print("请输入密码:");
pwd = input.next();
if(pwd.length()>=6) {//判定长度
System.out.print("注册密!");
}else {
System.out.println("密码长度不能小于6位!");
}
}
}
使用字符串对象pwd的length()方法“pwdlength()”获得长度。
比较在之前就已经学过了,所有就不再说了。
使用"+“运输符将多个字符串连接成一个新字符串,并使用”+“可以将任何多个字符串连接起来,注意:在使用”+"运输符连接字符串和int或double类型的数据,将自动转换String类型。
语法:字符串1.concat(字符串2);
方法 | 说明 |
---|---|
public int indexOf(int ch) public int index(String value) | 搜索第一个出现的字符ch(或字符串value) |
public int lastIndexOf(int ch) public int lasIndexOf(String value) | 搜索最后一个出现的字符ch(或字符串value) |
public String substring(int index) | 提取从位置索引开始的字符串部分 |
//语法:
//字符串1:split (String separator,int limit);
public class Lyric{
public static void main(String []grgs){
String words = "长城外 故道外 芳草碧连天 晚风扶 柳笛声残 夕阳山外山";
String []printword = new String[100];
System.out.println("\n****原歌词格式****\n"+words);
printword = words.split( " ");
for(int i = 0;i<printword.length;i++){
System.out.println(printword[i]);
}
}
}
拆分:标识拆分字符串时使用多个或一个字符。如果不选择该项,则返回包含该字符串所有单个字符的元素数组,
indexOf()方法:该方法是在字符串内搜索某个指定的字符或字符串,它返回出现第一个匹配字符位置。如果没有找到匹配,则返回-1.
lastlndex()Of方法:找到指定字符的位置。
trim()方法:该方法可以忽略字符串前后的空格。
StringBuffer类先声明后使用,类似于调用其他属性方法。
语法:字符串1.toString();
语法:字符串1.insert(位置.参数);
定义一个字符串可以使用String类和StringBuffer类。
String类提供大量操作字符串的方法。如下:
常用的StringBuffer类提供的方法如下:
StringBuffer类先声明后使用,类似于调用其他属性方法。
语法:字符串1.toString();
语法:字符串1.insert(位置.参数);
定义一个字符串可以使用String类和StringBuffer类。
String类提供大量操作字符串的方法。如下:
常用的StringBuffer类提供的方法如下: