Java学习记录--java面向对象的理解

来源:互联网 发布:java 文件md5校验 编辑:程序博客网 时间:2024/04/20 07:46

面向对象:当碰到问题域首先将问题的对象抽象出来,对象与对象之间的关系。

第一步:问题域有哪些类和对象

第二步:类和对象有哪些属性

第三步:类和对象之间的关系,定它们之间的方法

对象:类的具体的实例

类:一类事物的抽象

类或者对象之间的关系:

关联关系:一个类的方法里面是另外一个类的具体的某个对象,我的方法的参数是你类的对象(教授教研究生类中的某一个学生)。

继承关系(一般和特殊):(足球运动员是球类运动员的一类,球类运动员是运动员)实际的情况从许多地方继承更加复杂。

聚合关系(整体和部分):XXXX的一部分,聚集(球队的队长)和组合(部分和整体密不可分)。

实现关系:车都有go这个方法,不同的车从车继承了go方法实现的形式不同,自行车、小汽车等等。

多态

首先定义类才能有对象,对象是java的核心

静态属性就是成员变量简称属性,动态属性就是方法或者函数

类可以看作是静态属性和方法的总和

抽象一个事物就两个方面(属性和方法)属性也需要有类型,方法考虑有没有返回值


例如:public class Dog{

Int furcolor;

Int height;  属性

Void catchmouse (mouse m) {方法

M.scream()老鼠尖叫被抓住screammouse中的一个方法

}

}

光有狗的概念不行,必须再定义一个狗的对象

 

Public static main void(string[] args){

Dog d = new dog ();定义狗的对象造一个新狗

Mouse m =  new mouse();定义一只老鼠

d.catchmouse(m);狗抓老鼠

}每个类相当于一种新的类型

 

类中的成员变量可以初始化也可以不初始化,java会默认初始化;局部变量不会默认初始化,必须定义、赋值、使用。

基本类型:byteshortintlongcharfloatdoubleboolean

内存中分配一块空间存放数值

引用类型:除过基本类型

占两块内存,一块null还没初始化,之后new定义好的类的对象,这是null会变成一个地址指向另一大块内存(堆内存)存放new出来的东西。一小块内存指向一大块内存。

构造方法(构造函数):构造方法和类名字必须一致,不能个有返回值。和new一起使用

Public class Person{

Int id;

Int age;

Person(int _id,int _age){

id=_id;

age=_age;}}构造方法

Public static void main(string[]args){

Person tom = new person(1,25);

Person john = new person(2,27);}new 的是person的构造方法

内存,tom是一个局部变量在栈内存中占有一块空间并有一系列的值(并不是物理地址但会指向另一个空间)

new person的时候调用构造方法,构造方法有两个值放到栈内存

方法中的变量也是局部变量在栈内存中有空间

_id _age里面的值是调用方法是往里面传的值

new person在堆内存中new了一个实际的对象person对象

Person对象中有两个成员变量idage

调用方法时将栈内存的值传给堆内存中后,栈内存中的成员变量清除再给别的方法使用,此时栈内存的tom中的内容可以使我们找到堆内存中的成员变量

任何局部变量都会分配到栈内存中,方法的局部变量用完就没了



0 0
原创粉丝点击