JAVA面向对象课堂总结
面向对象是一个编程理念。最重要的概念是类(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面向对象课堂总结相关推荐
- 阿里云【名师课堂】Java面向对象开发57 ~ 59:覆写
阿里云[名师课堂]Java面向对象开发57 ~ 59:覆写 57:方法覆写 概念 访问权限 重载和覆写的区别 58:属性覆盖(了解) 59:super关键字 调用父类方法 调用父类属性 super与t ...
- 阿里云【名师课堂】Java面向对象开发2:面向对象简介
阿里云[名师课堂]Java面向对象开发2:面向对象简介 编程语言发展阶段 编程语言发展阶段 面向机器语言:汇编语言 面向过程语言:C语言.FORTRAN等 面向对象语言:Java等 面向过程的核心是编 ...
- 杨校老师课堂之Java面向对象知识点整理集锦
目录 第一部分 Java面向对象 1.开发环境搭建及开发工具eclipse使用 2.类和对象 3. 成员变量和局部变量区别 4. 数据类型 5.构造函数 6.函数 7. 成员变量的初始化 8. thi ...
- 小赵老师课堂开课了 !天道酬勤,相信自己学到就是赚到,一起来学习吧--- java面向对象程序设计基础的知识!!!!
大家!我是下一个pony,今天我又来更新帖子了~ 今天我们讲解的是java面向对象程序设计基础的知识~我们从以下几个方面来进行简单的讲解: ============================== ...
- java面向对象-------静态初始化块
1.构造方法用于对象的初始化!静态初始化块,用于类的初始化操作,在静态初始化块中不能直接访问非static成员. package java面向对象; /** * 测试静态初始化块 */public c ...
- JAVA面向对象-----final关键字
JAVA面向对象-–final关键字 1:定义静态方法求圆的面积 2:定义静态方法求圆的周长 3:发现方法中有重复的代码,就是PI,圆周率.1:如果需要提高计算精度,就需要修改每个方法中圆周率. 4: ...
- Java学习笔记二十五:Java面向对象的三大特性之多态
Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...
- 12 Java面向对象之多态
JavaSE 基础之十二 12 Java面向对象之多态 ① 多态的概念及分类 多态的概念:对象的多种表现形式和能力 多态的分类 1. 静态多态:在编译期间,程序就能决定调用哪个方法.方法的重载就表现出 ...
- 猫抓老鼠-Java面向对象特点梳理
我们先设计一个猫抓老鼠的小游戏: ⊙猫和老鼠都有名字和体重两种属性,猫有抓老鼠的方法,对应的老鼠则有逃跑的方法. ⊙首先游戏的结果是猫抓住了老鼠或者老鼠逃跑了,对于这两种情况,我们用体重来区分,若猫的 ...
最新文章
- knn人脸识别判断_测试使用K-最近邻(kNN)算法的30个问题
- c#3.0系列:Object Initializer 和 Collection Initializer
- java正则表达式性能_译:Java 中的正则表达式性能概述
- 关于重构之Switch的处理【二】
- java 备份 mysql 日志_MySQL 数据备份与还原
- Java 8 终于支持 Docker !
- JPA EntityManager –HibernateEntityManager
- IDEA插件推荐:Material Theme UI(把IDEA变得更加美观)
- 交互设计沉思录:顶尖设计专家Jon Kolko的经验与心得(原书第2版)
- 图片计算景深matlab程序,在线景深计算器
- 围棋AI kataGo下载
- php的入门是html5,h5自学教程:6个适合初学者的零基础html5入门自学教程推荐
- 太极图形html5代码,太极图案用html5怎样
- 百度地图改变定位图标
- ST188光电式传感器的应用
- 网络编程--探讨一些边界条件
- 【转】qlv文件如何转换成mp4 怎样把下载好的qlv格式视频转换成MP4格式
- 摄像头 - 屏幕刷新率(Hz)与帧率(fps)的区别与关系
- 测鬼记(上)——回岗(十)
- ZOJ 1598 Spherical Triangle
热门文章
- 工业互联网安全建设发展趋势
- allegro导出CSV格式的坐标文件 适用16.6
- 计算机网络技术第二版毛吉魁,IDS联动系统的设计与实现
- linux 文件和打印机共享文件夹,能实现Windows和Linux系统之间文件和打印机共享的Linux服务是( )...
- UltraEdit 给代码注释添加快捷键
- 基于jsDelivr+GitHub的免费CDN
- python读入多个word,合并word内容
- Istio 架构简单说明
- DEDE教程:最新织梦搜索页如何调用arclist标签?
- win10 打开的文件夹突然闪退,解决过程