【JAVA】第4章 面向对象(上)

面向对象三条主线:

1.Java类及类的成员:属性、方法、构造器;代码块、内部类
2.面向对象的三大特征:封装类、继承性、多态性、(抽象性)
3.其他关键字:this、super、static、final、abstract、interface、package、import

类和对象的使用

package com.rain.java;

public class PersonTest {

	public static void main(String[] args) {
		// 创建Person类的对象
		Person p1 = new Person();
		
		//调用对象的结构:属性、方法
		//调用属性:“对象.属性”
		p1.name="Tom";
		p1.isMale=true;
		System.out.println(p1.name);
		
		//调用方法:“对象.方法”
		p1.eat();
		p1.sleep();
		p1.talk("Chinese");
		
	}

}
class Person{
	//属性
	String name;
	int age;
	boolean isMale;
	
	//方法
	public void eat() {
		System.out.println("人可以吃饭");
	}
	public void sleep() {
		System.out.println("人可以睡觉");
	}
	public void talk(String language) {
		System.out.println("人可以说话,使用的是:"+language);
	}
}

创建Java自定义类

步骤:

  1. 定义类(考虑修饰符、类名)
  2. 编写类的属性(考虑修饰符、属性类型、属性名、初始化值)
  3. 编写类的方法(考虑修饰符、返回值类型、方法名、形参等)

类的成员之一属性

  • 语法格式:

修饰符 数据类型 属性名 = 初始化值 ;

   说明1: 修饰符
   常用的权限修饰符有:private、缺省、protected、public
   其他修饰符:static、final (暂不考虑)
   说明2:数据类型
   任何基本数据类型(如int、Boolean) 或 任何引用数据类型。
   说明3:属性名
   属于标识符,符合命名规则和规范即可。

举例:

public class Person{
private int age; //声明private变量 age
public String name =Lila; //声明public变量 name
}
  • 成员变量和局部变量

在方法体外,类体内声明的变量称为成员变量。
在方法体内部声明的变量称为局部变量。

在这里插入图片描述

  • 对象属性默认初始化赋值(成员变量)在这里插入图片描述
    局部变量必须显式赋值。

类的成员之二方法

方法的声明格式:
修饰符 返回值类型 方法名(参数类型 形参1, 参数类型 形参2, ….){
方法体程序代码
return 返回值;

  • 修饰符:public,缺省,private, protected等
    返回值类型:
    • 没有返回值:void。
    • 有返回值,声明出返回值的类型。与方法体中“return 返回值”搭配使用
  • 方法名:属于标识符,命名时遵循标识符命名规则和规范,“见名知意”
  • 形参列表:可以包含零个,一个或多个参数。多个参数时,中间用“,”隔开
  • 返回值:方法在执行完毕后返还给调用它的程序的数据。

匿名对象的使用

package com.rain.java;

public class InstanceTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Phone p=new Phone();
		System.out.println(p);
		
		p.sendEmail();
		p.playGame();
		
		//匿名对象
		new Phone().sendEmail();
		new Phone().playGame();
		//创建的对象没有显示的赋给一个变量名,即为匿名对象
		//匿名对象一次只调用一次
		new Phone().price=2000;
		new Phone().showPrice(); 
		
		//***************************
		//一般这样用
		PhoneMall mall=new PhoneMall();
		//mall.show(p);
		//匿名对象的使用
		mall.show(new Phone());
	}

}
class PhoneMall{
	public void show(Phone phone) 
	{
		phone.sendEmail();
		phone.playGame();
	}
}
class Phone{
	double price;//价格
	
	public void sendEmail() {
		System.out.println("发邮件");
	}
	public void playGame() {
		System.out.println("玩游戏");
	}
	public void showPrice() {
		System.out.println("手机价格为:"+price);
	}
}
方法–方法的重载

重载的概念
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
重载的特点:
与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或参数类型)。调用时,根据方法参数列表的不同来区别。

重载示例:
//返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和
int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和
double add(double x,double y){return x+y;}
方法–可变形参的方法
  1. 声明格式:方法名(参数的类型名 …参数名)
  2. 可变参数:方法参数部分指定类型的参数个数是可变多个:0个,1个或多个
  3. 可变个数形参的方法与同名的方法之间,彼此构成重载
  4. 可变参数方法的使用与方法参数部分使用数组是一致的
  5. 方法的参数部分有可变形参,需要放在形参声明的最后
  6. 在一个方法的形参位置,最多只能声明一个可变个数形参
package com.rain.java;

public class MethodArgsTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MethodArgsTest test=new MethodArgsTest();
		test.show(12);
		test.show("hello");
	}
	public void show(int i) {	
	}
	public void show(String s) {
		System.out.println("show(String)");
	}
	
	public void show(String ... strs) {
		System.out.println("show(String...strs)");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值