面向对象的关键字以及包和访问限定修饰符以及面向对象的三大特性

一、static、this关键字

1、this关键字

  • this关键字表示的是当前对象,主要在方法中使用(普通,构造),主要作用是为了区分全局变量和局部变量
  • 如果用一个对象调用带有this的方法,那么这个this就表示的是谁
  • this关键字,在方法中可以当作一个实际的对象进行使用
    在这里插入图片描述

2、static关键字

2、1用static修饰属性

  • 静态属性属于类所有,所有的实例化对象共享类的静态属性。一个对象对类的静态属性的修改会涌向到其他类的引用值
    在这里插入图片描述
  • 类是一个特殊的对象,静态方法只能调用静态方法,静态方法只能调用静态属性

2、2用static修饰方法

  • 静态方法属于类所有,调用的时候使用类名.方法名调用,也可以使用对象去调用
  • 静态方法在工具类中使用,日期格式化、字符串转换、数据库…
  • 被staic修饰的属性和方法属于类所有,直接使用类名.方法名/属性使用
  • static{ },静态代码块,在类第一次被加载的时候调用
    在这里插入图片描述

二、包和访问限定修饰符

1、包

  • 包的命名规则:域名后缀(com、cn)+公司名+类型包(bean、entity、dao、imp、service、action、controller、util)
  • 包名需要全部小写,多个单词之间在工作空间会生成一级一级的目录
  • 包的作用:为了可以在项目中区分不同功能的代码
  • 类的全路径:包名.类名
  • src资源包:在程序启动的时候,默认加载该资源所在的文件
    otherSrc和src都是资源文件夹里面的文件,都会进行编译,保存到bin包下;
  • 不同包下的类,不能直接进行相互引用,要进行导包操作
    使用import关键字,在类的packet关键字之后
    在这里插入图片描述
    不常见的用法:在要使用的类中,使用它的全路径做
    在这里插入图片描述
    2、访问限定符
    访问限定符是用来修饰我们的属性 ,方法,类。使用不同的限定符会导致属性、方法在调用的时候进行约束
public公共的
缺省
private私有的
protected受保护的
  • public:在同一个类中、同一个包中、不同包非子类中都可以使用
  • 缺省:在同一个类中、同一个包中可以使用,不同包非子类中不可以使用
  • private:只有在同一个类中才可以使用,其他情况都无法使用
  • protected:在同一个类中、同一个包中可以使用,不同包非子类中不可以使用

三、面向对象的四大特性

1、抽象

将现实生活中的事物用Java类来表示的过程

2、封装

  • 封装是对Java类属性的操作。前提:类的属性是使用private修饰的(私有属性),私有属性只能在自己的本类中使用,在其他类中无法使用
    在这里插入图片描述
  • 封装就是让别人能够使用我自己的私有化的属性,
    在自己的本类中提供一个可以用来操作私有属性的一个公共方法public
    公共方法一般有两个:给私有属性赋值的方法set和获取私有属性的方法get
    代码如下:
//name的封装
	public  void  setName(String  name) {
		this.name = name;
	}
	
	public  String  getName() {
		return   this.name;
	}
	
	//age的封装
	public  void  setAge(int age) {
		this.age=age;
	}
	public  int getAge() {
		return  this.age;
	}
	

	//sex的封装
	public  void setSex(boolean sex) {
		this.sex=sex;
	}
	public   boolean  getSex() {
		return  this.sex;
	}
  • 在Java中,封装一般会给该类的所有属性进行封装
  • 赋值使用set属性名(参数),属性名首字母大写,参数的类型与属性类型一致,没有参数,方法中使用return关键字,返回类的属性名
  • 获取属性的方法:返回值+get属性名()
    属性名首字母大写,返回值类型与属性类型一致,没有参数,方法中使用return关键字,返回类的属性名
public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public boolean isSex() {
		return sex;
	}
	public void setSex(boolean sex) {
		this.sex = sex;
	}
  • 可以用eclipse自动生成:右键–sourse-----getter and setter
    快捷键:alt+shift+s
  • 特别注意:!!!!!eclipse自动创建的get方法,属性是boolean类型的,生成的是is属性名
    在这里插入图片描述
  • Java的实体类:必须显示的写出无参数构造方法,所有的属性私有化,封装方法JavaBean是一种Java语言写成的可重用组件

3、继承

1、定义:将两个类建立子父类关系,使用关键字extends(多个类具有部分相同的属性和行为的时候,可以将多个类的公共部分抽象为父类,就可以减少代码量。
在这里插入图片描述
2、继承的特点

  • Java中只能有单继承,一个类只能有一个直接父类,但是可以有多个间接父类
  • 子类继承了父类之后,就拥有了父类的非私有属性,子类可以拥有自己独有的属性
  • final修饰的属性为最终属性,子类不能继承,
  • 子类继承了父类,子类就拥有父类的非私有方法,子类也可以有自己独有的方法
  • 如果子类继承了父类,那么子类中就会有和父类一样的属性和方法
对于属性而言
子类new子类子类使用自己的属性
父类new父类使用的是父类的属性
对于方法而言子类写了和父类一模一样的方法
子类new 子类调用子类的方法

3、重写

  • 定义:在字父类中,子类和父类的方法的名字,返回值,参数(参数的个数、类型、顺序)全部一致,就叫做方法的重写

  • 可以在子类中使用@override 进行校验
    在这里插入图片描述

  • 子类重写的方法可以使用final来修饰,子类重写的方法可以使用比父类方法的访问限定符更高权限的修饰符修饰
    在这里插入图片描述

  • 最终方法不能被重写(所谓的最终方法就是使用final关键字修饰的方法)
    4、super关键字

  • 子类在继承父类之后,在实例化子类的时候,必须先实例化父类,默认会去调用父类的无参数构造方法。如果父类中没有无参数构造方法,可以使用super关键字来调用父类的其他构造方法
    在这里插入图片描述

super必须放在构造方法的第一行执行

4、多态

注意:有多态必须先有继承
1、定义
父类引用指向子类对象(使用父类类型的变量来接受子类的实例对象)
一个对象在程序中拥有两种状态:编译时状态、运行时状态
2、语法:父类类型 名字 = new 子类类型
3、特点
对于向上转型而言

  • 多态成员变量
    当字父类中出现同名的成员变量时,多态调用该变量时:
    编译时期:参考的时引用型变量所属的 类中是否有被调用的成员变量。没有,编译失败
    运行时期:也是调用引用型变量所属的类中的成员变量
    简单记:编译和运行都参考等号的左边。编译运行卡左边
  • 多态成员方法
    编译时期:参考引用变量所属的类,如果类中没有调用的方法,编译失败。
    运行时期:参考引用变量所指的对象所属的类,并运行对象所属的类中的成员方法
    简单记:编译看左边,运行看右边
    4、分类
  • 向上转型:实例化子类赋值给父类变量
  • 向下转型:必须先有向上转型,向上转型后的父类对象转为子类对象
    注意:多态是为了让我们在使用字父类的时候,可以用父类来约束子类的操作
    所有对象的父类是object
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值