java⾯向对象代码_java⾯向对象汇总(上)
这⾥会讲到java的⾯向对象部分:1.类和对象 ;2.类的⽆参⽅法和带参⽅法;3.对象与封装;4.继承;5.多态。有代码,有注释,有颜⾊标注重点,有详细的步骤。所以对java⾯向对象部分迷惑的童鞋可以多看看呀,⼀定会有所收获的
⼀、类和对象
1.1什么是对象:
⽤来描述客观事物的⼀个实体,有⼀组属性和⽅法构成
1.2对象的特征:
属性:对象具有的各种特征
每个对象的每个属性都拥有特定值
例如:张浩和李明的年龄、姓名不⼀样
⽅法(能做的事):对象执⾏的操作
1.3封装:
对象同时具有属性和⽅法两种特性
对象的属性和⽅法通常是被封装在⼀起,共同体现事物的特性,⼆者相辅相成,不能分割
1.4什么是类:
类是模⼦,定义对象将会拥有的特征(属性)和⾏为(⽅法)
类和对象的关系:
类是多个对像进⾏综合抽象的结果,是实体对像的概念模型;⽽⼀个对象是⼀个类的实例类是抽象的概念,仅仅是模板。
对象是⼀个你能看的着,摸得着的具体实体,类是对象的类型。
1.5定义类:
①定义类名
语法:
访问修饰符 class 类名称{
//省略类的内部具体代码
}
注意:
访问修饰符如public、private等是可选的
class是声明类的关键字
按照命名规范,类名⾸字母⼤写
⽰例:
//定义⼀个“⼈”类publicclassPerson{//省略类的内部具体代码}
②编写类的属性
对象所拥有的特征在类中表⽰时称为类的属性
语法:访问修饰符 数据类型 属性名;
注意:访问修饰符是可选的,除了访问修饰符外,其他的语法和声明变量类似
⽰例:
//创建“⼈”类,并为“⼈”类添加相应属性publicclassPerson{publicStringname;publicStringgender;publicintage;}
③编写类的⽅法
对象执⾏操作的⾏为称为类的⽅法
语法:
访问修饰符 返回类型 ⽅法名称(参数类型 参数名1,参数类型 参数名2,……){
//……省略⽅法体代码
}
注意:访问修饰符是可选的
返回类型可以是void,在定义⽅法时,返回类型为void时表明没有返回值,⽅法体中不必使⽤“return”关键字返回具体数据,但是可以使⽤“return”关键字退出⽅法
返回类型如果不是“void”,那么在⽅法体中⼀定要使⽤”return“关键字返回对应类型的结果,否则程序会出现编译错误
⼩括号中的“参数数据类型 参数名1,参数数据类型 参数名2,……“称为参数列表
当需要在⽅法执⾏的时候为⽅法传递参数时才需要参数列表,如果不需要传递参数就可以省略,不过⼩括号不可以省略,传递多个参数时,以英⽂的逗号进⾏分隔
⽰例:
//在“⼈”类中定义⽅法,描述⼈⼯作的⾏为publicclassPerson{//定义⼈类publicStringname;//姓名publicStringgender;//性别publicintage;//年龄//⼯作的⾏为publicvoidwork(){System.out.println(this.name+"⼯作理念:⼲活挣钱有饭吃");}}
1.6创建和使⽤对象:
创建对象:
类中的对象可以调⽤类中的成员,如属性和⽅法等
语法:类名 对象名 = new 类名();
注意:new是关键字;左边的类名为对象的数据类型;右边的类名() 称为类的构造⽅法
⽰例:
//创建 Person 类的对象Personperson=newPerson();
使⽤对象:
在java中,要引⽤对象的属性和⽅法,需要使⽤“.“
语法:对象名.属性 //引⽤对象的属性
对象名.⽅法名() //引⽤对象的⽅法
⽰例:
publicstaticvoidmain(String[]args){Personperson=newPerson();//创建对象person.name="韩
冰";der="⼥";person.age=22;person.work();}
1.7⾯对对象的优点:
提⾼代码的可重⽤性
提⾼代码的安全性和可维护性
与⼈类的思维习惯⼀致
⼆、类的⽆参⽅法和带参⽅法
2.1⽆参⽅法:
2.1.1定义类的⽅法:
语法:
访问修饰符 返回值类型 ⽅法名(){
//⽅法的主体
}
两种情况:1有返回值 2 ⽆返回值
1.有返回值:
如果⽅法具有返回值,⽅法中必须使⽤关键字return返回该值,要返回的数据类型要和返回值的类型⼀样
语法:return 表达式;
作⽤:跳出⽅法,返回结果
2.⽆返回值:
如果⽅法没有返回值,返回值类型为void
⽆参的⽅法表⽰的就是⽅法名后⾯的括号中没有任何内容
⽰例:
publicclassAutoLion{Stringcolor="黄⾊";publicvoidrun() {System.out.println("正在以0.1⽶/秒的速度向前奔跑");}publicvoidcry() {Stringsound="⼤声吼叫";}publicStringrobBall() {Stringball="球";returnball;}}
2.1.2⽅法的调⽤:
语法:对象名.⽅法名();
注意:⽅法是个“⿊匣⼦”,完成某个特定的应⽤程序功能,并返回结果
⽅法调⽤:执⾏⽅法中包含的语句
本类中⽅法的调⽤:
本类中的⽅法调⽤,我们直接编写⽅法名();即可
⾮本类中⽅法的调⽤:
如果调⽤的是⾮本类中的⽅法,需要先创建对象,然后⽤对象名.⽅法名(); 调⽤
⽅法调⽤⼩结:
⽅法之间允许相互调⽤,不需要知道⽅法的具体实现,实现重⽤,提⾼效率
2.1.3全局变量和局部变量:
全局变量:声明在类以内⽅法以外
局部变量:声明在⽅法以内
含义:变量声明的位置决定变量作⽤域;变量作⽤域确定可在程序中按变量名访问该变量的区域
publicclassAutoLion{//变量1,2,3为全局变量 AutoLion类的⽅法,其他类的⽅法都可⽤变量1类型变量1;变量2类型变量2;变量3类型变量3;public返回类型⽅法1(){//变量4为局部变量 仅⽅法1可⽤变量4类型变量4;}public返回类型⽅法2(){//变量5为局部变量 仅⽅法2可⽤变量5类型变量5;}
全局变量和局部变量的区别:
1.作⽤域不同:
局部变量的作⽤域仅限于定义它的⽅法
static修饰的变量成员变量的作⽤域在整个类内部都是可见的
2.初始值不同:
java会给全局变量⼀个初始值
java不会给局部变量赋予初始值
注意:
在同⼀个⽅法中,不允许有同名的局部变量
在不同⽅法中,可以有同名的局部变量
在同⼀个类中,全局变量和局部变量同名时,局部变量具有更⾼的优先级
全局变量和局部变量是可以重名,但是在使⽤的时候按照就近原则
publicclassBian{inta=10;publicvoida(){inta=20;}publicvoidb(){System.out.println(a);}publicstaticvoidmain(String[]args) {Bianbian=newBian();bian.b();//结果是10}}publicclassBian{inta;publicvoida(){inta=20;}publicvoidb()
{System.out.println(a);}publicstaticvoidmain(String[]args) {Bianbian=newBian();bian.b();//结果是
0}}publicclassBian{inta;publicvoida(){intb;}publicvoidb(){System.out.println(b);//会报错 因为b是局部变量,不会⾃动给初始
值}publicstaticvoidmain(String[]args) {Bianbian=newBian();bian.b();}}
2.2带参⽅法:
2.2.1定义带参数的⽅法:
语法:
1 返回类型
2 (3) {
//⽅法的主体
}
⽰例:
publicclassStudentsBiz{String[ ]names=newString[30];publicvoidaddName(Stringname){//⼀个形式参数//增加学⽣姓
名}publicvoidshowNames() {//显⽰全部学⽣姓名}
调⽤带参数的⽅法:
语法:对象名.⽅法名(参数1, 参数2,……,参数n4)
⽰例:
publicstaticvoidmain(String[]args)
{StudentsBizst=newStudentsBiz();Scannerinput=newScanner(System.in);for(inti=0;i<5;i++){System.out.print("请输⼊学⽣姓名:");();st.addName(newName);//实参的类型、数量、顺序都要与形参⼀⼀对应}st.showNames();}
带多个参数的⽅法:
publicclassStudent{publicbooleansearchName(intstart,intend,Stringname){String[]names={"哈哈","呵呵","嘻嘻","嘿嘿","哼哼"};booleanfind=false;for(inti=start-1;i
2.2.2数组的使⽤:
publicclassArrayTest{publicStringmax(int[]a){intmax=a[0];for(inti=0;i
2.2.3新创⼀个类型:
//创建⼀个学⽣类publicclassStudent{intstuId;Stringname;intage;publicvoidshow(){System.out.println("学号是:"+stuId+"姓名是:"+name+"年龄是:"+age);}}publicclassTestStudent{Student[]students=newStudent[30];//创建对象数组,和创建对象⼀样;可以使⽤多次publicvoidaddStu(Studentstudent){for(inti=0;i
三、对象与封装
⾯向对象设计和开发程序的好处:
交流更加流畅;提⾼设计和开发效率
⼀个现实世界的问题如何在计算机中描述它们:
1.出它的种类
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论