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();

	}

}

程序运行结果如图

如有错误和不足请大佬指出

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值