JAVA面向对象课堂总结

JAVA面向对象课堂总结,第1张

面向对象是一个编程理念。最重要的概念是类(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,……{}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/786685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存