java程序员修炼之道之面向对象

来源:互联网 发布:面试算法100题 编辑:程序博客网 时间:2024/05/16 17:27

面向对象

1,面向对象的关系:

A,关联关系:这是面向对象中关系最弱的一种关系,只表示两者之间存在这么一种关系。

B,继承关系(一般和特殊):XX是一种XX(学生是一个人。)

C,聚合关系:XXXX的一部分!聚集(松耦合),组合(高度耦合。)

D,实现关系:我有一种方法,但是自己不实现,让子类去实现。


2java中的面向对象与内存的解析:

A,在java中数据类型主要分为两大类型:基本数据类型和引用数据类型。

B,基本数据类型的值存放在堆中,inti=9;这个i9都是存放在堆中,我们在使用9

的时候,直接访问i即可。

C,引用数据类型的值存放在栈中,在堆中存放的是这个值的引用地址。Strings=”zhangsan”,这个zhangsan存放在栈中,而s存放在堆中,我们在使用zhangsan的时候,直接访问s这个引用地址即可。

3,面向对象设计的过程就是抽象的过程。


4,重载的概念:

在同一个类中,方法名相同,方法参数个数或参数类型不同,与方法返回值和方法修饰符没有任何的关系。

publicclassOverloading {

publicstaticvoidmain(String[] args) {

System.out.println(add(12,2,12));

}

/**

*重载方法的练习

*/

publicstaticintadd(inta,int b){

returna+b;

}

publicstaticintadd(inta,int b,intc){

returna+b+c;

}


}


5static关键字

Static可以用来修饰属性、方法和代码块,static修饰的变量属于这个类所有,也就是由这个类创建的所有对象共用一个static变量,我们通常把static修饰的属性和方法称为类属性和类方法。不使用static修饰的属性和方法,属于单个对象。通常叫做实例属性和实例方法。

Static修饰的方法或者属性,在该类加载的时候就加载static修饰的方法或者属性。

在类中可以定义static变量,但是在方法中不可以定义static变量,也就是说类变量不能是局部变量。



6,封装。

封装是类的三大特征之一,就是将类的状态信息隐藏在内部类,不允许外部程序直接访问。

publicclass Dog {

privateStringname;//姓名

privateintage;//年龄

/**

*初始化赋值

*@paramname

*@paramage

*/

publicDog(String name,intage){

this.name=name;

this.age=age;

}

publicString getName(){

returnname;

}

publicvoidsetName(String name){

this.name=name;

}

publicintgetAge(){

returnage;

}

publicvoidsetAge(intage){

this.age=age;

}

publicString show(){

return"我的名字叫"+this.name+",今年"+this.age+"";

}

}


7this关键字。

This关键字是对一个对象的默认引用。在每个实例方法内部,都有一个this引用变量,指向调用这个方法的对象。

因为this是在对象内部指代自身的引用,所以this只能调用实例变量,实例方法和构造方法(也就是不能调用static修饰的方法或者属性)



8,继承

java继承通过extend关键字来实现。如果使用privateprotected修饰父类则子类继承不了。

继承是java的三大特征之一,但是java支持单继承,即一个子类只能有一个直接父类。继承的表达式是is a的关系。


9,重写

在子类中可以根据需求对从父类继承的方法进行重新编写,称为方法的重写或者覆盖。

方法重写必须要满足如下要求。

①,重写方法和被重写的方法必须具有相同的方法名;

②,重写方法和被重写方法必须要具有相同的参数列表;

③,返回值必须保持一致。


10,重写和重载的区别。

①,重载:在同一个类中,方法名相同,参数列表不同,和返回值无关。

②,重写:重写的方法和被重写的方法必须方法名相同,参数列表相同,返回值相同。



11,多态

多态是具有表现多种形态的能力和特征。也就是同一个实现接口,使用不同的实例而执行不同的操作。


原创粉丝点击