学习Java的第N天:Java之面向对象编程

面向对象编程(Object-Oriented Programming. OPP)
面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据。

在这里插入图片描述

类的概念

类是一组具有相同特征和行为对象的抽象描述。

类主要由属性和行为组成,属性和行为又称为类的成员变量和成员方法,统称为类的成员(除此之外,类的成员还包括构造方法,代码块{})

类描述的是抽象概念,用于描述一个群体。
类就是现实生活中所说的“类型”

对象的概念

对象是类的一个具体实现,是客观存在的一个具体事物/实体,具有唯一性和独立性。

对象用于描述客观事物的一个实体,由一组特性和行为构成。
  • 类是抽象的,表示群体概念。
  • 对象是具体的,表示个体概念。
  • 先具有的对象,然后抽象各个对象之间非部分,归纳出类再认识其他对象
    生活案例】
  1. 类是一个图纸,对象是根据该 图纸制造的多个实物。
  2. 类是一个模具,对象是使用模具制造的多个铸件。
  3. 类是上海大众汽车,对象就是大家购买的一辆具体的上海大众汽车。

程序中的类和对象

属性

 >类或者对象的特征称为属性,对象属性具备的值称之为属性值。
 >同一类对象都具有相同的属性,但属性一定不一样,对象是数据的载体。
 >属性用于定义该类或该类对象包含的数据。
 >属性的作用范围是整个类体。

方法

类或者对象的行为称之为方法,同一类的对象都具有相同的方法。

总结
类(class)和对象(object)是面向对象中的两个核心概念。
一个类可以实例化多个对象,而一个对象只能属于一个类。

类是一组相同属性和方法的对象的集合,对象是用来描述客观事物的一个实体,由一组属性和方法构成。

类的定义
定义类的语法:

[修饰符] class 类名{
   //方法内容
}

【实例】定义一个学生类

public class Student{
	
	// 定义属性
	String sId;
	String name;
	int age;
	String gender;
	
	// 定义方法
	public void sayHi(){
		System.out.println(name + " say hello!");
	}
	
	public void learn(String cName){
		System.out.println(name + " is learning " + cName);
	}
}
//该类中包含两个成员,一个是成员变量也叫属性,有些地方也称为字段,一个是成员方法简称方法。

对象的初始化
实例化:类创建后,可以用于类来创建一个对象。

public class Test01{
	
	public static void main(String[] args){
		
		// 创建一个对象
		// 【1】s1是引用数据类型,其指向的内存在heap区
		// 【2】通过Student实例化了一个对象s1
		Student s1 = new Student();
		// System.out.println(s1);
		// 【3】.语法访问属性和方法
		s1.name = "张三";
		s1.sId = "001";
		s1.age = 20;
		s1.showInfo();
		s1.sayHi();
		s1.learn("java");
		
		Student s2 = new Student();
		System.out.println(s2);
	}
}

面向对象的三大特征

封装、继承、多态,还有一个抽象(应该是指类)

封装

  • 概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
  • 好处:
    只能通过规定的方法访问数据。
    隐藏类的实例细节,方便修改和实现。 
    需要注意:对封装的属性不一定要通过get/set方法,其他方法也可以对封装的属性进行操作。当然最好使用get/set方法,比较标准。

继承

inheritance :继承
constructor:构造器
abstract:抽象
override:覆盖、重写
overload:重载

继承(inheritance)是Java
OOP中一个非常重要的概念。继承是在复用已存在的类的方法和属性的基础上,还可以添加新的方法和属性。Java用extends关键字来表示继承关系(is-a)。被继承的类称为超类(superclass)、基类(base class)、父类(parent class),而新类被称为子类(subclass)、派生类(derived
class)或孩子类(child class)。

java支持单继承支持多实现

多态

不同对象对同一操作的不同实现。

使用多态的优势:可以减少代码量,提高代码的可扩展性和可维护性。
继承是多态的基础,没有继承就没有多态。

语法:对象名  instanceof 类或接口

抽象类

类是对一类事物的描述,如果一个类中没有包含足够的信息 来描绘一个具体的对象,那么这个类就是抽象类

  • 抽象类和抽象方法都用abstract关键字声明。不能用来修饰属性和构造方法

  • 抽象类不是不能实例化,而是不能直接实例化,可以通过子类间接实例化。

abstract不能和private、final、static修饰同一个方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值