5.Java基础之面向对象程序设计

本文介绍了Java中的面向对象设计思想,详细讲解了类的定义、方法的使用、构造方法、方法重载、成员变量和局部变量的区别,以及this关键字的应用。通过手机类和汽车类的例子阐述了类和对象的关系,并提供了相关语法结构和注意事项。
摘要由CSDN通过智能技术生成

面向对象


1. 定义

是一种设计思想,万物皆对象

2.特性

封装、继承、多态、(抽象)

3. 类

  • 定义:是一个主观的定义
    • 生活中先有客观的事物-----划分出对应的类
    • java中先有类-----才能创建出对象
    • 类和对象的关系:
      • 类是对大量对象共性的抽象性概括
      • 对象是类的具体化
      • 类是创建对象的模板
  • 定义一个类:
    • 手机类:
      • 1.颜色、尺寸、品牌、价格、摄像头的个数、系统----属性或者特点
      • 2.能够有什么样的功能,打电话、发短信、聊微信、学习、打游戏…
    • 汽车类:
      • 1.属性: 品牌、颜色、车型、价格、轮子数量、座位数…
      • 2.功能: 能跑、能载人、听音乐、吹空调…

注意:在定义类的时候,会选择具有代表性的属性和功能

命名规范:类名尽可能标识出这个类的实际含义

类的语法结构:
[修饰符]  class   类名{
	[属性;]
		语法格式:  [修饰符] 数据类型  属性名 [=初始值];
	[方法;]:表示一个类的功能、行为、能力
		语法格式: [修饰符]  返回值类型   方法名([参数列表]){
			[return 返回值;]
		}
		如果方法没有返回值,返回值类型使用void
}

3. 方法的使用

①语法结构:
 [修饰符] 返回值类型 方法名([参数列表]){
	 方法体;
	 [return 返回值;]
 }
 参数:一般理解为是方法需要的额外信息,并且不能明确一个确定的值
定义在方法中的是形参:
  • ①形参用在方法中可以理解为实际的值
  • ②约束实参的类型
return的作用:
  • ①在方法中用来返回返回值
  • ②结束方法

在类的使用中,方法和属性的使用者是对象。对象在调用方法和属性之前一定要先实例化

传参:

//测试类
public class Test {
	public static void main(String[] args) {
		//食物对象
		Food food = new Food();
		food.name="竹子";
		//动物对象
		Panda panda = new Panda();
		panda.name="小苏";
		//饲养员对象
		Feeder feeder = new Feeder();
		feeder.panda=panda;
		feeder.food=food;
		feeder.name="张三";
		
		//饲养员开始喂动物吃食物
		feeder.feed();
	}
}


//熊猫类
public class Panda {
	String name;
	//吃
	void eat(Food food){//吃食物,把食物作为参数
		System.out.println(name+"开始吃"+food.name);
	}
}

//食物类
public class Food {
    String name;
}

//饲养员类
public class Feeder {
	//属性
	Panda panda;
	//食物
	Food food;
	//名字
	String name;
	
	//饲养员员,拿食物喂动物
	void feed(){
		System.out.println("饲养员"+name+",把"+food.name+"喂给了"+panda.name);
		//动物吃食物
		panda.eat(food);
	}
}

4. 构造方法

①作用:用来创建对象使用,是比较特殊的方法
②语法结构:
    [修饰符] 类类型([参数列表]){
		构造方法体;
	}
注:

1、构造方法没有返回值类型,连void都不能使用。

2、构造方法的名字必须和类的名字保持一致。

附:

1、如果一个类没有显式的定义构造方法,那么系统会默认提供一个无参构造方法。

2、如果显示的定义了构造方法,系统不再提供构造方法。

3、类定义了有参构造方法,一般都会把无参构造方法带上。


5. 方法的重载

  • 1.定义:在一个类中,方法名相同,参数列表不同的方法就叫做方法的重载
  • 参数列表不同表示:1、个数不同 2、类型不同 3、顺序不同

6. 成员变量和局部变量

  • 成员变量:直接在类中定义的属性也叫成员变量
  • 局部变量:定义在方法中的变量变量是局部变量
  • 区别:
    • 1.成员变量有缺省值,局部变量没有缺省值。局部变量在使用之前一定要赋值
    • 2.成员变量所有方法都可以直接使用,局部变量只能在定义了这个变量的代码块中使用
    • 3.成员变量可以使用访问修饰符修饰,局部变量不能访问修饰符

7.this关键字

this:当前类的一个实例(对象)
1.当局部变量和成员变量重名时,成员变量被隐藏,使用[this.变量名]来访问被隐藏的成员变量
2.在本类的构造方法中,使用[this([参数列表])]来调用本类的其他构造方法

public class Student {
	public int id=101;//学生的编号
	protected String name;
	int age;
	private String sex;//性别
	
	void show(){
		int id=201;
		System.out.println(id);
		//使用this关键字来访问被隐藏的成员变量,this.变量名
		System.out.println(this.id);
		say();
	}
	
	void say(){
		System.out.println("哈哈哈"+name+sex);
	}
	
	public Student(){
		//this(10);
		show();
	}
	//再有参构造方法中调用本类其他构造方法
	Student(int id){
		this();//无参构造方法
		this.id=id;
	}
}	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值