java白话文简介_java面向对象白话解说

面向对象的程序设计:

1.什么事面向过程的程序设计,面向过程的程序设计注重程序执行的流程和顺序,典型的是C语言。

2.面向对象的程序设计,设计者变成了调用者,找到了对象就找到了对象的功能,用来解决一些复杂分业务和大型的应用,典型的面型对象程序语言,典型的像java、C++、C#

对象是一个具体的实体,类是一个抽象的概念,类是多个具有相同属性和形为的对象抽取出来的。定义类的过程是一个抽象的过程。

变量的作用域:

1.变量定义的位置决定了该变量的可见度,在类中定义的变量通常叫做成员变量

成员变量和局部变量:

1. 变量定义的位置决定了该变量的可见度,在类中定义的变量,通常是成

员变量,这些变量可以被类中所有的方法访问,甚至可以被其它类的方法访

问。在方法内定义的变量,是局部变量,它的可见度是局部于定义它的方法的,

所以只能在定义它的方法内访问。

2. 成员变量在堆中分配置存储空间,而局部变量在方法调用的栈区中分配

置存储空间,成员变量会自动被初始化为和数据类型相关的一个初值,而局

部变量不会进行自动进行初始化,所以必须要先定义,再赋值,再使用。

3. 成员变量和局部变量的生命周期不一样,成员变量在对象回收时才会释

放存储空间,而局部变量在方法调用结束就释放存储空间。

构造方法:

与类同名且没有任何的返回值,就连void也没有。构造方法是在实例化类的对象时通过new关键字调用的。当类中没有显式的定义任何构造方法时,jvm会为这个类创建一个默认的无参数的无法。如果自定义了构造方法,则jvm不再分配置默无参数构造方法。 构造方法中一般会写创建对象时就要执行的内容。 构造方法也可以被重载。 一般,如果自定义了带参的构造方法,最好再定义一个无参构造。

this关键字的使用:

在一个类中所有成员变量和成员方法,访问时需要通过对象来访问,这个对象的表示方法就是this,指代类的一个虚拟对象。

this();表示构造方法的调用,只能在构造方法中调用,只能在第一行

构造代码块:

在构造方法之前执行的代码块,放在所有方法之外

{

方法或语句

}

局部代码块是在方法内定义的,只能在方法内使用

局部代码块可以加速内存空间的回收,可以提高内存空间的利用率

匿名对象:

面向对象的三大特征:

1.封装 2.继承 3.多态

封装 :

广义角度的封装:类的定义的过程,就是一个封装的过程

狭义上的封装: 是指属性私有化,并对这些私有化的属性对外提供公有地访问方法

private 私有的

封装的好处,可以让用用户按照设计者设计方式来访问数据,能够隐藏事物的实现细节,降低使用的难度,保证数据的完整和有效

封装代码实现,私有化成员变量,提供共有的setter方法,供用户写入数据,提供的getter方法,供用户读取数据

继承

子类不断向上抽取的结果,继承可以减少重复的代码,实现代码的重用。继承要符合is---a原则

继承的单根性和传递性 单根性:

在设计阶段,先通过子类去得到父类,在编码阶段先定义父类在派生子类,父类也成为基类,子类也叫派生类。一个父类可以派生多个子类,但是在java中一个子类只能有直接的一个父类,java不支持多继承。

传递性:

java中类可以派生子类,子类又可以派生子类,类的继承是可以传递的

多继承:

一个类可以有多个直接的父类,C++支持多继承。

java中的访问修饰符:

1. private 在类中被private修饰的成员只能在本类中可见。

2. public修饰的成员,本类可见,子类可见,同包类可见,不同包类可见。

3. 默认的访问修饰 本类及同包类可见,不同包类不可见。

4. protected 修饰的成功本类及子类可见,不同包中的非子类不可见。

方法的重写:在继承关系中,如果子类具有和父类相同签名的方法,方法的返回值类型和方法名都相同,,子类方法对父类方法进行了重写,重写的关键字是@override

重写的原则:

1. 方法的签名必须相同

2. 如果父类返回值类型是基本数据类型/void,则子类返回值类型必须和父类返回值类型完全一致。

3. 子类方法的访问修饰符要大于等于父类方法的访问修饰符级别

4. 父类方法的返回值类型如果是引用类型,子类方法的返回值类型可以是引用类型的子类或引用类型本身。

super关键字 指父类的对象的引用,是父类的一个虚拟对象。

super()调用父类的无参构造方=,在一个类中,所有的构造方法中的第一行都会默认调用类的无参构造方法,这时如果父类没有提供默认的无参构造,当前类的定义就会出现错误,解决办法有两种:

1.在父类中定义一个无参构造方法

2.在藻类的构造方法中显式的调用父类的带参构造方法

在继承关系下,当创建子类对象的时候,想创建父类对象,在创建子类对象

多态

什么是多态?事物在不同场合表现出不同的形态,称为多态。

实现多态的方法:

1.方法的重载

public class Actor{

public void play(剧本);

public void play(唱歌);

public void play(弹琴);

}

方法重载实现多态不利于维护,面向对象开发原则开闭原则,对增加代码是开放的,对修改代码是封闭的

2.方法的重写

public class Pet {

public void eat() {

System.out.println("宠物吃饭......");

}

}

public class Cat extends Pet{

@Override

public void eat() {

System.out.println("小猫吃鱼......");

}

}

public class Dog extends Pet{

@Override

public void eat() {

System.out.println("小狗吃肉......");

}

}

public class Master {

public void feed(Pet pet) {

pet.eat();

}

}

public static void main(String[] args) {

Cat cat=new Cat();

Dog dog=new Dog();

Rabbit rabbit=new Rabbit();

Master master=new Master();

master.feed(rabbit);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值