Day08

面向对象与关键字

final关键字的概述及特点

final关键字是最终的意思,可以修饰类,成员变量,成员方法。修饰类,类不能被继承

修饰变量,变量就变成了常量,只能被赋值一次

修饰方法,方法不能被重写

静态的概述

当在定义类的时候,类中都会有相应的属性和方法。而属性和方法都是通过创建本类对象调用的。当在调用对象的某个方法时,这个方法没有访问到对象的特有数据时,方法创建这个对象有些多余。可是不创建对象,方法又调用不了,这时就会想,那么我们能不能不创建对象,就可以调用方法呢?

可以的,我们可以通过static关键字来实现。static它是静态修饰符,一般用来修饰类中的成员。

静态的特点被类的所有对象共享

这也是我们判断是否使用静态关键字的条件

可以通过类名调用

优先于对象存在

随着类的加载而加载

static方法的访问特点及注意事项

静态方法的访问特点

静态方法只能访问静态的成员变量和静态的成员方法

静态方法的注意事项在静态方法中是没有this,super关键字的

静态的内容是随着类的加载而加载,this和super是随着对象的创建而存在。

抽象类的特点

抽象类和抽象方法必须用abstract关键字修饰

格式:

public abstract class 类名 {}
public abstract void eat();

抽象类不一定有抽象方法,有抽象方法的类一定是抽象类 抽象类不能实例化

抽象类如何实例化

按照多态的方式,由具体的子类实例化。其实这也是多态的一种,抽象类多态。

抽象类的子类

要么是抽象类

要么重写抽象类中的所有抽象方法

抽象类的成员的特点

成员变量

  • 可以是变量
  • 也可以是常量构造方法
  • 有构造方法,但是不能实例化构造方法的作用是什么
  • 用于子类访问父类数据的初始化成员方法
  • 可以有抽象方法 限定子类必须完成某些动作
  • 也可以有非抽象方法 提高代码复用性

接口的特点

接口用关键字interface表示格式:public interface 接口名 {} 类实现接口用implements表示 格式:public class 类名 implements 接口名 {} 接口不能实例化 接口如何实例化 按照多态的方式,由具体的实现类实例化。其实这也是多态的一种,接口多态。 接口的实现类 要么是抽象类,要么重写接口中的所有抽象方法

接口的成员特点

成员变量只能是常量 默认修饰符 public static final 构造方法 没有,因为接口主要是扩展功能的,而没有具体存在 成员方法 只能是抽象方法 默认修饰符 public abstract

类与类类与接口接口与接口的关系

类与类继承关系,只能单继承,但是可以多层继承 类与接口 实现关系,可以单实现,也可以多实现。还可以在继承一个类的同时实现多个接口 接口与接口 继承关系,可以单继承,也可以多继承抽象类与接口的区别

成员区别抽象类 变量,常量;有抽象方法;抽象方法,非抽象方法 接口 常量;抽象方法 关系区别 类与类 继承,单继承 类与接口 实现,单实现,多实现 接口与接口 继承,单继承,多继承 设计理念区别 抽象类 被继承体现的是:”is a”的关系。共性功能 接口 被实现体现的是:”like a”的关系。扩展功能

包的概述和权限修饰符

包的概述其实就是文件夹 作用:对类进行分类管理 包的划分: 举例: 学生的增加,删除,修改,查询 老师的增加,删除,修改,查询 以及以后可能出现的其他的类的增加,删除,修改,查询 基本的划分:按照模块和功能分。 高级的划分:就业班做项目的时候你就能看到了。 定义包的格式 package 包名; 多级包用.分开即可

注意事项:

  • package语句必须是程序的第一条可执行的代码
  • package语句在一个java文件中只能有一个
          public   protected	默认	private
同一类中     √         √	          √	     √
同一包子类   √         √	          √	
不同包子类   √         √
不同包其他类 √

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习入门

POJ 刷题系列:3295. Tautology

题意: 给出二元变量 p,q,r,s,t以及运算符K,A,N,E,C,求所给运算符和变量的集合是否符合永真,若永真输出tautology,否则输出not。 思...

2127
来自专栏用户3030674的专栏

java构造代码块,构造函数和普通函数的区别和调用时间

在这里我们谈论一下构造代码块,构造函数和普通函数的区别和调用时间。 构造代码块:最早运行,比构造函数运行的时间好要提前,和构造函数一样,只在对象初始化的时候运行...

942
来自专栏java学习

Java每日一练(2017/6/16)

题目要求 本期题目:(注解练习) 1.自定义一个可以用来接收用户登录信息的注解,将用户名和密码设置到验证的方法中, 例如: @LoginInfo(name="张...

29513
来自专栏峰会SaaS大佬云集

更新c++学习笔记 第四章 命名空间

命名空间的名字在其所在作用域中是唯一的,命名控件可以在全局作用域或者其它作用域内部定义,但是不能在函数或者类的内部定义。

480
来自专栏软件开发 -- 分享 互助 成长

java中的==和equals

一、使用==判断两个变量是否相等 (1)对于基本类型的变量,值相等则返回true (2)对于引用类型的变量,只有指向同一个对象时才返回true。 ==不可以比较...

1986
来自专栏程序员互动联盟

【编程基础第十二讲】web开发编程基础--回调函数

存在问题: 我们都知道C语言存在回调函数,那么JavaScript中的回调函数是如何实现的? 如何实施: a.非参数回调函数 这类回调函数大多比较简单,往往传一...

2555
来自专栏行者常至

final、abstract、interface

【包含抽象方法的类一定是抽象类;抽象类中可包括非抽象方法(具体的方法)。抽象类无法实例化,不能创建对象,只能通过子类继承,然后通过方法覆盖。如果不覆盖抽象方法,...

821
来自专栏积累沉淀

线程的创建

创建一个Java线程常见的有两种方式: 1.继承Thread类 两种表示方法: (1).外部类 import java.util.D...

2098
来自专栏开发与安全

面向对象编程风格 VS 基于对象编程风格(boost::bind/function)

本文主要通过实现Thread 类来展现两种编程风格的不同点。 很多人没有区分“面向对象”和“基于对象”两个不同的概念。面向对象的三大特点(封装,继承,多态)缺...

2430
来自专栏C语言及其他语言

【每日一题】问题 1117: K-进制数

考虑包含N位数字的K-进制数. 定义一个数有效, 如果其K-进制表示不包含两连续的0.

1072

扫码关注云+社区

领取腾讯云代金券