Java基础——面向对象基础

面向对象的基础

编程思想

面向过程
	只考虑事物发展的的顺序
面向对象
	1、先考虑事物中有哪些对象
	2、再考虑对象与对象之间的关系

什么是对象

生活中的对象:真实存在的事事物
代码中的对象:通过代码描述一个真实存在对的事物
	静态:属性(或成员变量)
	动态:方法(函数)

什么是类

多个对象抽取其共同点形成概念,称为“类"
属性
方法

对象与类的关系

生活中:
	先有对象,再有类
代码中:
	先有类,再有对象
对象是类的实例,类是多个对象抽取共同点形成的概念

Java类

如何创建类

语法:
	class 类名{
	
	}
注意:
	1、一个类class前有public,这种类称为”公共类“
	2、公共类的类名必须与文件名一致
	3、一个文件中可以定义多个类
	4、一个文件中只能有一个公共类
	5、一个文件中类名不能重复
建议:
	1、一个文件中只能写一个类
	2、类名的命名规则
		2.1、大驼峰,见名只意
		2.2、可以使用大写字母,小写字母,数字,“_”,"$"
		2.3、数字不能开头

类的组成

属性(成员变量):
	作用:描述该类对象静态的事物
	如:人的性别、姓名、年龄等
	
	在那定义属性?
		类中,方法以外,定义的变量称为属性
		注意:一个类中属性名不能重复
	如何定义属性?
		1、在类中,方法以外
		2、使用定义变量的方法定义属性
		语法:数据类型 属性名;
方法(函数):
	作用:描述该类对象动态的特征
	如:人的吃饭、睡觉、打游戏等
	
	在那定义方法?
		类中,方法以外
	如何定义方法?
		public 返回值类型 方法名(形参列表){
			方法体
			return 返回值;
		}
构造函数(构造方法):
	作用:创建该类的对象
	注意:类中可以不定义构造函数,如果一个类中没有构造函数,系统会帮我们给该类生成一个无参构造函数
	语法:
		public 类名(形参列表){
			方法体
		}
		注意:没有返回值的特殊方法
练习:
    创建一个类为dog
    该类的属性有:姓名、性别、毛色、年龄
    方法有:叫,在该方法中输出“汪汪汪!”
    提供一个有参构造,一个无参构造
    class dog{
	//属性:姓名、性别、毛色、年龄
	String name;
	String sex;
	String color;
	int age;
	//定义构造函数(无参)
	public dog() {
		
	}
	//定义构造函数(有参)
	public dog(String name,String sex,String color,int age) {
		
	}
	//定义“叫”方法
	public void call() {
		System.out.println("汪汪汪!");
	}
}

重载

要求:
	1、同一个类中
	2、方法名一致
	3、形参列表不同
注意:一个类中如果有多个构造函数,那么这多个构造函数的关系一定是重载

局部变量与成员变量

局部变量:
	声明的位置:方法中或形参中
	使用范围:在A方法中声明,只能在方法A中使用
	生命周期:变量的声明开始,方法调用结束
成员变量:
	声明的位置:类中方法外
	使用范围:在A类中声明,可以在A类中的任何一个方法中使用
	生命周期:随对象的创建而生成,随对象的消亡而消亡

this关键字

1、在方法中,当成员变量与局部变量名称一致时,用于区分成员变量还是局部变量
2、在方法中调用当前类的其他成员属性或方法
3、在构造函数中使用this
	可以调用成员变量或成员方法
	可以区分成员变量与局部变量
	可以调用当前类中别的构造函数
		语法:this(实参列表)
		注意:只能在构造函数的第一行使用
含义:谁调用this所在的方法,this就代表谁

Java对象

如何创建一个对象

语法:
	数据类型 对象名 = new 类名(实参列表)
含义:
	使用new关键字调用构造
注意:
	该对象的类名就是该对象的数据类型
	一个类可以创建多个对象

对象创建过程

1、在堆内存中开辟一片空间
2、加载对象的属性,并给属性赋初值
3、执行构造函数中的代码
4、将开辟的内存地址赋值给变量

基本数据类型传递的是值本身,引用数据类型传递的是地址

对象的内存分配

参考文章:(https://www.cnblogs.com/jianwei-dai/p/15402683.html)

对象调用属性,调用方法

调用属性:
	对象.属性名				 获取属性值
	对象.属性名 = 值;			设置属性值
调用方法
	对象.方法名(实参列表);

匿名对象

没有变量名的对象,称为匿名对象
使用场景:
	当对象只使用一次时,可以不用给对象起对象名,直接创建并使用

对象调用属性,调用方法

调用属性:
	对象.属性名				 获取属性值
	对象.属性名 = 值;			设置属性值
调用方法
	对象.方法名(实参列表);

匿名对象

没有变量名的对象,称为匿名对象
使用场景:
	当对象只使用一次时,可以不用给对象起对象名,直接创建并使用

练习

定义学生类:
	属性:姓名(name)、年龄(age)、性别(sex)、分数(score)
	方法:打招呼(sayHi)
	打印学生所有信息
创建多个学生对象,为其各个属性赋值,并调用方法
public class Student {
	String name;
	int age;
	String sex;
	double score;
	
	public void say() {
		System.out.println("姓名:"+name + ",年龄:" + age + ",性别:" + sex + ",成绩:" + score);
		System.out.println(name + "说:Hello");
	}
}
public class Test {
	public static void main(String[] args) {
		Student student = new Student();
		student.name = "豆三岁";
		student.age = 22;
		student.sex = "男";
		student.score = 100;
		student.say();
	}
}

运行结果:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值