Java面对对象程序设计——面对对象
Posted 鱼仔没人爱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面对对象程序设计——面对对象相关的知识,希望对你有一定的参考价值。
重点掌握
1.类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称为实例
2.创建对象的格式是:类名 对象名称 = new 类名 ();
3.方法的声明格式是:[<修饰符>] <返回类型> <方法名>({参数列表}){ 方法体 }
4.如果在定义方法时在最后一个形参的类型后增加“...”,则表明该形参可以接受多个参数值,多个参数值被当成数组传入
5.类方法的名称与类名完全一致,它用于在创建对象时对成员变量进行初始化。
类和对象的概念
类(class)和对象 (object)是两种以计算机为载体的计算机语言的合称。. 对象是对客观事物的抽象,类是对对象的抽象。. 类是一种抽象的数据类型。. 它们的关系是,对象是类的实例,类是对象的模板。
一、类与对象
类的语法构造
Java语言中定义类的语法如下:
[修饰符] class 类名
{
定义构造方法;
定义属性;
定义方法;
}
修饰符可以是public、final、abstract或完全省略这三个修饰符,而类名只要是一个合法的标识符即可
注意:类中各成员之间的定义顺序对程序没有任何影响
对象的创建和使用
在Java语言中创建对象的根本途径是,通过new关键字调用某个类的构造方法
( 1 )声明对象
类名 对象名
( 2 )实例化对象
对象名 = new 构造方法()
( 3 )属性的调用
对象名.属性
( 4 )方法的调用
对象名.方法名( [ 参数 ] )
示例
创建Dota游戏中的英雄类,在该类中定义三个属性,分别是姓名、年龄和性别,然后再定义一个奔跑的方法
public class Hero {
String name; //名字
int age; //年龄
String sex; //性别
//奔跑方法
public void run(int a){
System.out.println(a+"m/s的速度飞速狂奔");
}
public static void main(String[] args){
//创建英雄对象
Hero hero = new Hero();
//通过对象实例调用name属性并为该属性赋值
hero.name = "暗黑游侠";
hero.age = 20;
hero.sex = "女";
System.out.println("英雄的名字:"+hero.name);
System.out.println("英雄的年龄:"+hero.age);
System.out.println("英雄的性别:"+hero.sex);
hero.run(30);//使用该对象调用run()方法
}
}
程序运行结果如图
二、方法详解
方法是类或对象的行为特征的抽象,是类或对象最重要的组成部分,通过方法可以实现对类的属性的操作
方法声明
方法(method)的声明包含方法头和方法体两部分,方法的声明格式如下:
[<修饰符>] <返回类型> <方法名>([ 参数列表 ]){ 方法体 }
1.方法头包括修饰符、返回类型、方法名和参数列表;方法体包括在括号内的声明部分和语句部分,用于描述方法的功能
2.修饰符,表示方法的访问权限。修饰符有private、缺省访问修饰符、protected和public
3.返回类型,为该方法返回值的类型,如该方法没有返回值,则方法的返回类型为void
4.参数列表,指定在调用时应该传递的参数的个数和类型。参数列表如果包含多个参数,相邻的参数之间用逗号隔开,此处的参数在定义时并没有分配存储单元,只有在运行时间才分配,所以称为形式参数。方法也可以没有参数,称为无参方法
5.对于有返回值的方法,方法体中至少有一条return语句,形式为return(表达式)。当调用该方法时,表达式的值就是方法的返回值,方法返回值的类型应和表达式的类型一致
6.方法不能嵌套定义,即不能在方法中再声明其他的方法
方法参数的传递
public class Parameter {
//该方法用于在方法中互换形参值
public void change(String x,String y){
String temp; //定义一个临时变量
System.out.println("***形参改变之前***");
System.out.println("x="+x+"\\t"+"y="+y);
//形参值的互换
temp=x; //将x值赋值给变量temp
x=y; //将变量y值赋值给变量y
y=temp; //将temp值赋值给变量y
System.out.println("***形参值互换后***");
System.out.println("x="+x+"\\t"+"y="+y);
}
public static void main(String[] args) {
Parameter param = new Parameter(); //创建Parameter实例
String a = "10",b = "20";
System.out.println("---调用change()方法前---");
System.out.println("a="+a+"\\t"+"b="+b);
param.change(a,b); //调用方法
System.out.println("---调用change()方法后---");
System.out.println("a="+a+"\\t"+"b="+b);
}
}
程序运行结果如图
三、可变形参方法
可变方发声明
[ < 修饰符 > ] < 返回类型 > < 方法名 >( 变量类型...变量名 ){ 方法体 }
1.方法头包括修饰符、返回类型、方法名和参数列表;方法体包括在括号内的声明部分和语句部分,用于描述方法的功能
2.修饰符,表示方法的访问权限。修饰符有private、缺省访问修饰符、protected和public
3.返回类型,为该方法返回值的类型,如该方法没有返回值,则方法的返回类型为void
4.变量类型为任意数据类型,在变量类型和变量名之间用"..."表示。其中"..."不是省略号,而是定义参数类型的方式
可变参数的特点如下:
( 1 )只能出现在参数列表的最后面
( 2 )”...“位于变量类型和变量名之间,前后有无空格都可以
( 3 )调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数
示例
public class VarargsTest {
public static void testVarargs(int x,String...users){
for(String user:users){
System.out.println(user);
}
}
public static void main(String[] args) {
//采用可变个数形参的方法调用
testVarargs(3,"小兴","阿彪","阿伟");
}
}
程序运行结果如图
四、构造方法
构造方法是一种特殊的方法,它是一个与类同名的方法。 对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。 当类实例化一个对象时会自动调用构造方法。 构造方法和其他方法一样也可以重载
特点:当一个类中没有定义构造函数时,系统会给该类中加一个默认的空参数的构造函数,方便该类初始化。只是该空构造函数是隐藏不见的
示例
public class Hero {
String name;
int age;
//用户自定义的构造方法
public Hero(String xm,int nl){
System.out.println("---用户自定义构造方法执行了---");
name = xm;
age = nl;
}
public Hero(){
System.out.println("---缺省构造方法被执行了---");
}
public void showMessage(){
System.out.println("英雄名:"+name+"\\t"+"英雄年龄:"+age);
}
public static void main(String[] args) {
//用缺省构的构造方法创建对象
Hero hero = new Hero();
Hero hero2 = new Hero("吕德华",66);
hero.showMessage();
hero2.showMessage();
}
}
程序运行结果如图
如有错误和不足请大佬指出
以上是关于Java面对对象程序设计——面对对象的主要内容,如果未能解决你的问题,请参考以下文章