【Java基础】2020.01.02面向对象

面向对象OOP

一、 面向过程&面向对象

1、面向过程:

①按照步骤来进行,首先完成第一步,才能执行第二步。
②就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以。

2、面向对象:

①问题可以剖析为几个类,类有哪些特征和行为,类与类之间有哪些的关系
②是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

二、 三个特性

1、封装

把对象的属性和方法结合在一起,并尽可能隐藏对象的内部细节,形成一个不可分割的独立单位(即对象),对外形成一个边界,只保留有限的对外接口使之与外部发生关系。
private关键字 来封装属性,通过get方法来获取属性的值。通过set方法进行属性赋值。

2、继承

是软件重用的一种形式,它通过吸收现有的类的数据和方法,并增加新功能或修改现有功能来构建新类。一般类称为父类或超类,特殊类称为子类。特殊类的对象拥有其一般类的全部属性和方法

3、多态

是指在父类中定义的属性或方法被子类继承之后,可以具有不同的表先行为。这使得同一个属性或方法在父类及其各个子类中具有不同的语义。Java中可以通过子类对父类方法的重写实现多态,也可以利用重载在同一个类中定义多个同名的不同方法来实现。降低了程序块之间的耦合性,提高了类的封闭性。分为重写(不同类之间)和重载(同一个类).

4、抽象 一些公司认为是四个特性

三、类的解释

1、类是Java的核心和本质,是Java语言的基础,类定义了一种新的数据类型。
2、就是类的模板,而对象就是类的一个实例
3、类由属性和方法构成
4、 对象的特征在类中表示为成员变量,称为类的属性或成员变量。
5、类的方法或成员方法是对象执行操作的一种规范。方法指定以何种方式操作对象的数据,是操作的实际实现。包含构造方法。
6、基本数据类型存放在栈中,新建的对象存在堆里边

四、类的声明

语法

[访问符][ 修饰符]class<类名>{
[属性]
[方法]
}

例子
package com.hyg.pojo;
/**
 * 手机类
 * 如果类中只加get、set方法。这个类称为实体类(JavaBean)
 * 实体类具有记录数据的功能
 * @author 15332 
 */
public class Phone {
	/*属性*/
	//品牌
	private String brand;
	//颜色
	private String color;
	/*方法,快捷键:shift+alt+S*/
/*get方法:获取类的属性的值
	 * return 中的参数前的this可有可无
	 * */
	public String getBrand() {
		return brand;
	}
	/*set:把传过来的参数,赋值给当前类的属性。
	 * set方法:给属性赋值
	 * */
	public void setBrand(String brand) {
		this.brand = brand;//this代表本类,解决命名冲突问题。
	}
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
}

访问符

用于声明类、属性和方法的访问权限
有:public(共有)、 protected(受保护)、 private(私有) 或缺省

修饰符

用于说明所定义的类的特性
有:abstract(抽象)、 static(静态)、 final(最终)
修饰符不是必须的,需要根据类的特性进行使用

五、 get、set方法

1、get方法

get方法:获取类的属性的值
return 中的参数前的this可有可无
例子:

public String getBrand() {
		return this.brand;
}

2、set方法

把传过来的参数,赋值给当前类的属性。
给类的属性赋值
例子

public void setBrand(String brand) {
		this.brand = brand; 
	}

六、对象的创建

1、声明并赋值
Phone huawei = new Phone();

2、先声明,后赋值
Phone sony;//声明一个变量,即定义该类的一个对象
sony = new Phone();//创建该对象的实际物理复刻,即在内存中为该对象分配地址空间
//new 后面跟的是构造方法

3、 声明对象后,如果不想给对象分配存储空间,则可以使用”null”关键字给对象赋值
Phone iphone = null; 
4、调用方式

对象名.方法名
对象名.属性

七、构造方法

特点

1、每个类都会有一个无参构造方法
2、构造方法名字和类的名字相同
3、无返回值类型,初始化类的内部状态(属性值)
4、创建有参构造方法后,无参构造方法会被覆盖
5、创建有参构造方法后,若想使用无参构造方法,可以在创建一个无参构造方法

1、无参构造方法
语法:

[访问符]<类名>( ){

}

例子
public String getBrand() {
		return this.brand;
}

引用例子
Phone huawei = new Phone(); 
2、有参构造方法

无返回值类型

语法:

[访问符]<类名>([参数列表]){
//初始化语句
}

创建例子
	public Phone(String brand,String color){
		//初始化类的状态
		this.brand = brand;
		this.color = color;
	}
引用例子
Phone huawei = new Phone("huawei","黑色"); 

八、类的方法

语法

[访问符][修饰符]<返回类型>方法名([参数列表]){
//方法体
}

方法调用

对象名.方法名();

*注

null

null指的是空的引用,不指向任何地址。
null可以赋值给引用类型
null也可以用于释放内存

this关键字

this关键字代表当前所在类的对象,即本类。
1、用于解决变量的命名冲突和不确定性问题
2、用于获取当前类对象的引用

实体类(pojo包中)

属性和get、set方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值