【2022.05.19】Java的面向对象

面向过程

按照事务的发展顺序,考虑问题

面向对象

事物中存在那些对象
在建立对象与对象的关系(万事万物皆对象)

对象

现实生活中的含义:真实存在的事物;
代码中的对象:描述生活中的对象;

现实生活中的含义:一个抽象的概念
代码中的类:对象的设计图
一个类可以创建无数个对象

类与对象的关系

生活中:先有对象后有类
生产或者代码中:先有类后有对象

如何创建一个类

语法:
	class 类名{
	
	}
eg:
	class Person{

	}

类中有什么

	class Person{
		名字
		性别
		年龄
		肤色
		//静态的称之为属性
		吃
		喝
		打游戏
		//动态的称之为方法
	}

属性

对象静态的事物
定义位置:类中,方法以外
语法:数据类型 变量名;

方法

对象动态的事物
定义的位置:类中方法以外
语法:
	访问权限修饰符(可以不写,有默认值) 修饰符(一般情况不写) 返回值类型 方法名(形参列表){
		方法体
		return 返回值;
	}

构造函数

语法:
	访问权限修饰符 类名(形参列表){
	
	}
作用:创建本类对象时调用
注意:
	1.一个类中如果没有构造函数,系统会帮其生产一个无参构造函数
	2.构造函数是一个特殊的方法
	3.构造函数的类名是和创建的类一致的

如何创建一个对象

语法:
	数据类型 对象名=new 类名/构造函数名(实参列表);

如何使用对象调用属性或方法

属性
	设置
		对象名.属性名=值;
	获取
		对象名.属性名

this

作用:1.当局部变量和属性名相同时,用来区分属性和局部变量的
	2.在当前类中调用,当前类的其他属性方法,可以忽略this不写
	3.在构造函数里调用其他构造函数,在第一行用this();
this的意义:
	谁调用this所在的方法,this就代表谁,[对象名.方法=this.方法]

对象的创建过程

类名 对象名=new 类名(实参列表)
步骤:
	1.在堆内存中开辟空间
	2.给属性赋初始默认值(基本数据类型为0,引用类型为null)
	3.执行调用构造函数的代码
	4.将堆内存的地址给栈内存中对象的引用

面向对象的三大特征

继承
封装
多态

继承

特点:
	1.子类将继承父类的所以属性和方法,但是构造函数不能继承
	2.只能单继承,只能有一个父类(直接父类)
	3.一个类没有写明继承关系,默认继承与object
代码中的继承:
	多个类抽取其共同点形成的概念,该类就是多个类的父类(基类,超类)
继承的优点:
	1.节省代码
	2.提高代码的可读性
	3.提高代码的复用率
语法:
	访问权限修饰符 class 子类名 extends 父类名{
	
	}
super:
	1.在子类构造函数中调用父类的构造函数,如果不写,默认调用无参构造(只能写在第一行)[语法:super(形参列表); ]
	2.如果子类父类都有相同的属性名或方法名时,用来区分子类还是父类的属性,和this用法一样(super.name)

封装

作用:将东西进行包装
优点:
	1.降低代码耦合度
	2.保护内部
	3.方便使用
Java的任何一处都体现着封装性
作用域:变量和方法的使用范围
访问权限修饰符:
	作用:限定使用范围
		public			公共的		 整个项目中
		protected		受保护的	当前包中或者继承关系中
		默认的			  默认的	   当前包中
		private			私有的		 当前类中
属性修饰(尽量private,私有化):
eg:
类{
	private 属性
	提供两个构造函数,一个无参,一个全参,使用public修饰
	给所有属性提供get和set方法(快捷键:alt+shift+s)
	get:public String getName() {
			return name;
		}
	set:public void setName(String name) {
			this.name = name;
		}

	重写toString方法
}

多态

意义:一个事物多态的多种展现形态
事的多态:重写与重载
物的多态:
	子类对象转父类对象:没有风险自动转换
					父类名 对象名=子类对象;
	父类对象转子类对象:有风险,需强转
					子类名 对象名=(子类名)父类对象;
	注意:子类对象转换为父类对象,调用重写后的方法,还是执行子类重写的方法
	instanceof:判断对象是否属于该类
	语法:对象名 instanceof 类名

包装类

意义:8个基本数据类型对应的类
基本数据类型			包装类
byte 				Byte
short				Short 
int					Interger 
long				Long
float				Float
double				Double
char				Character
boolean				Boolean
将基本数据类型转换为其对应的包装类对象称之为自动装箱
将包装类对象转换为对应的基本数据类型称之为自动拆箱
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值