面向对象是一个编程理念。最重要的概念是类(Class)和对象(Object)

认识类和对象

1.类名:由字母,下划线,数字或美元符号组成,且第一个字符不能是数字,

2.定义类:首字母大写如Demo,大括号里的是语句块个体

3.声明对象:类名 对象名=new 类名 如:Teacher zhangsan= new Teacher();

ps:类名尽量选择有英文意思的来选择做类名

4.java可以有很多类,最多只能有一个(Public)公共类,Public类必须是原文件的名字。

静态变量和静态函数

1.static修饰的成员称为类成员,由类名,类变量|类方法来引用

2.static关键字可以修饰变量和方法

特点:随着类的加载而加载

ps:静态方法中只能出现静态成员

3.静态函数就是在普通函数的定义钱加上关键字static

静态代码块

static{//代码块}

执行顺序:静态代码块→构造代码块→构造方法

下面我们来看看封装,继承,多态 ,接口

一、封装

定义:是面向对象的基本特征之一。

实现封装有以下两个步骤

1.将不能暴露的成员隐藏起来,例如Customer类中的age,不能让其在类的外部被直接赋值。

实现方法是将该成员定义为私有的,在成员定义钱加上修饰符private

2.用公共方法来暴露暴露对该隐藏成员的访问,可以给函数加上修饰符public,将该方法的定义为公共的。

权限修饰符

定义变量 [修饰符] 变量类型 变量名称; [修饰符] 变量类型 变量名称 = 初始值;

其中权限修饰符有:public、protected、private、默认

它们之间的定义如下:

public:公共权限允许任何类去访问

protected:受保护权限,允许有继承关系的子类去访问

private:私有权限,只能在定义的类中访问,在其他类中不可访问

默认:相同的包可以访问权限,在没有声明权限时默认为默认权限

权限从大到小的顺序public>protected>默认>pvivate

成员访问控制修饰符

分别是:private,default,protected,public

代码如下:

public class Teacher{

private String name;

String sex;

protected int age;

public void display(){}

}

特点:

1.private类的成员只能在定义它的类的内部被访问。

2.default 类的成员可以在定义它的类的内部被访问,也可以被这个包中的其他类访问

3.protected 类的成员可以在定义它的类的内部被访问,也可以被这个包中的其他类访问,还可以被包外的子类访问。

4.public类成员可以在定义它的类的内部被访问,也可以包内,包外的所有其他类访问。

使用类中类

定义:在类中去定义一个类

代码如下:

class  Interior{

int a;

void funInterior(){

Inner inner=new Inner();

}

class Interior{

int  b;

void fun(){

a=5;

this.b=8;}

}

}

ps:1.内部类中的成员只能在内部类范围内才能使用,外部类不能像使用自己的成员变量一样去使用它们

2. 如果在内部类中使用this,且只能代表内部类的对象,只能去引用内部类的成员

二、继承

定义:在Java中被继承的类称为父类,基类或超类,与之对应的类称为子类或派生类。继承是通过关键字extends实现的,格式如下:

class 子类 extends 父类{}

ps:1.object没有父类,它是所有类的父类(默认的情况下)

2.如果一个成员要被子类继承之后使用,这个成员不能是private类型,因为私有的成员不能在类的外部去使用,当然了也不能被子类使用,一般情况下,成员变量定义为protected 类型,成员函数定义为public类型

成员覆盖

this.()调用自身的方法

super.()调用父类的方法

constractor构造方法:先执行父类参数构造方法。

父类带参数的构造方法:super.(+参数)

重写(Override)

定义:如果子类的函数定义为父类相同,最后调用时时调用子类中的方法称为重写或覆盖

规则:

1.参数列表要与重写的方法要相同

2.不能定义一个名称和参数列表与父类相同的函数,返回类型不同的话,系统会报错

3.在覆盖的情况下,如果一定要在子类中调用父类的成员函数,可以使用关键字super,调用方法是super.函数名 代码如下:

class Student extends

面向对象是一个编程理念。最重要的概念是类(Class)和对象(Object)

认识类和对象

1.类名:由字母,下划线,数字或美元符号组成,且第一个字符不能是数字,

2.定义类:首字母大写如Demo,大括号里的是语句块个体

3.声明对象:类名 对象名=new 类名 如:Teacher zhangsan= new Teacher();

ps:类名尽量选择有英文意思的来选择做类名

4.java可以有很多类,最多只能有一个(Public)公共类,Public类必须是原文件的名字。

静态变量和静态函数

1.static修饰的成员称为类成员,由类名,类变量|类方法来引用

2.static关键字可以修饰变量和方法

特点:随着类的加载而加载

ps:静态方法中只能出现静态成员

3.静态函数就是在普通函数的定义钱加上关键字static

静态代码块

static{//代码块}

执行顺序:静态代码块→构造代码块→构造方法

下面我们来看看封装,多态,继承

一、封装

定义:是面向对象的基本特征之一。

实现封装有以下两个步骤

1.将不能暴露的成员隐藏起来,例如Customer类中的age,不能让其在类的外部被直接赋值。

实现方法是将该成员定义为私有的,在成员定义钱加上修饰符private

2.用公共方法来暴露暴露对该隐藏成员的访问,可以给函数加上修饰符public,将该方法的定义为公共的。

权限修饰符

定义变量 [修饰符] 变量类型 变量名称; [修饰符] 变量类型 变量名称 = 初始值;

其中权限修饰符有:public、protected、private、默认

它们之间的定义如下:

public:公共权限允许任何类去访问

protected:受保护权限,允许有继承关系的子类去访问

private:私有权限,只能在定义的类中访问,在其他类中不可访问

默认:相同的包可以访问权限,在没有声明权限时默认为默认权限

权限从大到小的顺序public>protected>默认>pvivate

成员访问控制修饰符

分别是:private,default,protected,public

代码如下:

public class Teacher{

private String name;

String sex;

protected int age;

public void display(){}

}

特点:

1.private类的成员只能在定义它的类的内部被访问。

2.default 类的成员可以在定义它的类的内部被访问,也可以被这个包中的其他类访问

3.protected 类的成员可以在定义它的类的内部被访问,也可以被这个包中的其他类访问,还可以被包外的子类访问。

4.public类成员可以在定义它的类的内部被访问,也可以包内,包外的所有其他类访问。

使用类中类

定义:在类中去定义一个类

代码如下:

class  Interior{

int a;

void funInterior(){

Inner inner=new Inner();

}

class Interior{

int  b;

void fun(){

a=5;

this.b=8;}

}

}

ps:1.内部类中的成员只能在内部类范围内才能使用,外部类不能像使用自己的成员变量一样去使用它们

2. 如果在内部类中使用this,且只能代表内部类的对象,只能去引用内部类的成员

二、继承

定义:在Java中被继承的类称为父类,基类或超类,与之对应的类称为子类或派生类。继承是通过关键字extends实现的,格式如下:

class 子类 extends 父类{}

ps:1.object没有父类,它是所有类的父类(默认的情况下)

2.如果一个成员要被子类继承之后使用,这个成员不能是private类型,因为私有的成员不能在类的外部去使用,当然了也不能被子类使用,一般情况下,成员变量定义为protected 类型,成员函数定义为public类型

成员覆盖

this.()调用自身的方法

super.()调用父类的方法

constractor构造方法:先执行父类参数构造方法。

父类带参数的构造方法:super.(+参数)

重写(Override)

定义:如果子类的函数定义为父类相同,最后调用时时调用子类中的方法称为重写或覆盖

规则:

1.参数列表要与重写的方法要相同

2.不能定义一个名称和参数列表与父类相同的函数,返回类型不同的话,系统会报错

3.在覆盖的情况下,如果一定要在子类中调用父类的成员函数,可以使用关键字super,调用方法是super.函数名 代码如下:

class StudentGrades extends Student {

private String name;

public StudentGrades(String title,String name){

this.title=title;//调用自身方法

this.name=name;}

public void show(){

super.show();//调用父类的show函数

System.out.println("StudentGrades .show()");

}

}

重载(overload)

定义:同一个类里面的多个方法可以使用相同的名字,但参数必须不同,返回类型可以一样也可以不一样

规则:

1.方法名相同

2.参数不同

3.返回类型可以相同也可以不相同

重写与重载的区别

1.有相同方法名,参数,返回类型的方法,子类的方法就是方法重写

2.重写实现的是编译时的多态性,重载实现的是运行时的多态性

三、多态

分为:静态多态和动态多态

定义:面向对象且采取多种不同的行为方式

ps:函数返回类型是父类类型,实际却是返回可以是子类对象

向上转型(小转大)

格式:父类 对象名=new 子类();

如:Animal  animal=new dog();

四、接口(单继承,多接口)

定义:在抽象类中可以含有普通成员函数,所有抽象类的函数都是抽象的,也可以定义为接口

格式:interface 接口名

{

//语句

}

继承格式:【修饰符】 interface 接口名 【extends】父接口

ps:接口中的成员函数默认都是public 访问类型

一个类可以继承一个父类的同时实现一个或多个接口,多个接口用逗号隔开

如:class 子类 extends 父类 implements 接口1,接口2,……{}

JAVA面向对象课堂总结相关推荐

  1. 阿里云【名师课堂】Java面向对象开发57 ~ 59:覆写

    阿里云[名师课堂]Java面向对象开发57 ~ 59:覆写 57:方法覆写 概念 访问权限 重载和覆写的区别 58:属性覆盖(了解) 59:super关键字 调用父类方法 调用父类属性 super与t ...

  2. 阿里云【名师课堂】Java面向对象开发2:面向对象简介

    阿里云[名师课堂]Java面向对象开发2:面向对象简介 编程语言发展阶段 编程语言发展阶段 面向机器语言:汇编语言 面向过程语言:C语言.FORTRAN等 面向对象语言:Java等 面向过程的核心是编 ...

  3. 杨校老师课堂之Java面向对象知识点整理集锦

    目录 第一部分 Java面向对象 1.开发环境搭建及开发工具eclipse使用 2.类和对象 3. 成员变量和局部变量区别 4. 数据类型 5.构造函数 6.函数 7. 成员变量的初始化 8. thi ...

  4. 小赵老师课堂开课了 !天道酬勤,相信自己学到就是赚到,一起来学习吧--- java面向对象程序设计基础的知识!!!!

    大家!我是下一个pony,今天我又来更新帖子了~ 今天我们讲解的是java面向对象程序设计基础的知识~我们从以下几个方面来进行简单的讲解: ============================== ...

  5. java面向对象-------静态初始化块

    1.构造方法用于对象的初始化!静态初始化块,用于类的初始化操作,在静态初始化块中不能直接访问非static成员. package java面向对象; /** * 测试静态初始化块 */public c ...

  6. JAVA面向对象-----final关键字

    JAVA面向对象-–final关键字 1:定义静态方法求圆的面积 2:定义静态方法求圆的周长 3:发现方法中有重复的代码,就是PI,圆周率.1:如果需要提高计算精度,就需要修改每个方法中圆周率. 4: ...

  7. Java学习笔记二十五:Java面向对象的三大特性之多态

    Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...

  8. 12 Java面向对象之多态

    JavaSE 基础之十二 12 Java面向对象之多态 ① 多态的概念及分类 多态的概念:对象的多种表现形式和能力 多态的分类 1. 静态多态:在编译期间,程序就能决定调用哪个方法.方法的重载就表现出 ...

  9. 猫抓老鼠-Java面向对象特点梳理

    我们先设计一个猫抓老鼠的小游戏: ⊙猫和老鼠都有名字和体重两种属性,猫有抓老鼠的方法,对应的老鼠则有逃跑的方法. ⊙首先游戏的结果是猫抓住了老鼠或者老鼠逃跑了,对于这两种情况,我们用体重来区分,若猫的 ...

最新文章

  1. knn人脸识别判断_测试使用K-最近邻(kNN)算法的30个问题
  2. c#3.0系列:Object Initializer 和 Collection Initializer
  3. java正则表达式性能_译:Java 中的正则表达式性能概述
  4. 关于重构之Switch的处理【二】
  5. java 备份 mysql 日志_MySQL 数据备份与还原
  6. Java 8 终于支持 Docker !
  7. JPA EntityManager –HibernateEntityManager
  8. IDEA插件推荐:Material Theme UI(把IDEA变得更加美观)
  9. 交互设计沉思录:顶尖设计专家Jon Kolko的经验与心得(原书第2版)
  10. 图片计算景深matlab程序,在线景深计算器
  11. 围棋AI kataGo下载
  12. php的入门是html5,h5自学教程:6个适合初学者的零基础html5入门自学教程推荐
  13. 太极图形html5代码,太极图案用html5怎样
  14. 百度地图改变定位图标
  15. ST188光电式传感器的应用
  16. 网络编程--探讨一些边界条件
  17. 【转】qlv文件如何转换成mp4 怎样把下载好的qlv格式视频转换成MP4格式
  18. 摄像头 - 屏幕刷新率(Hz)与帧率(fps)的区别与关系
  19. 测鬼记(上)——回岗(十)
  20. ZOJ 1598 Spherical Triangle

热门文章

  1. 工业互联网安全建设发展趋势
  2. allegro导出CSV格式的坐标文件 适用16.6
  3. 计算机网络技术第二版毛吉魁,IDS联动系统的设计与实现
  4. linux 文件和打印机共享文件夹,能实现Windows和Linux系统之间文件和打印机共享的Linux服务是( )...
  5. UltraEdit 给代码注释添加快捷键
  6. 基于jsDelivr+GitHub的免费CDN
  7. python读入多个word,合并word内容
  8. Istio 架构简单说明
  9. DEDE教程:最新织梦搜索页如何调用arclist标签?
  10. win10 打开的文件夹突然闪退,解决过程