java面向对象复习

来源:互联网 发布:邪恶帝软件下载 编辑:程序博客网 时间:2024/05/17 08:31

1、 内存

 

PC主要原件:CPU+内存+硬盘

运行着的程序在内存里,内存是临时存储器。

没有运行的程序在硬盘上,硬盘是永久性存储器。

2、 和数据库无关的程序都是只在内存里运行,属于昙花一现。

写程序的实质就是在操作内存。

int a = 10; //和内存要一块空间,名字叫a,大小4个字节,把10存进去

 

3、 JVM帮助我们管理内存,运行程序。它把内存分为以下结构:

1) 栈:存放值类型

2) 堆:存放引用类型的数据

3) 静态代码区:存放类,代码,静态成员

 

Int a = 10

Int b = 11

System.out.print(a+b);

 

4、 普通变量只能存单个数据,double d =1.2; char c=’a’;如果想存一个学生的信息,该用哪种类型的变量?

需要一种自定义的复合类型。专用的词叫做class

5、 复合类型的定义方法:Student就是这个新类型的名称,地位和int一致,花括号中小变量是student的成员。

class Student

{

   int num;

   int age;

   String name;

}

----程序入口----

Student s = new Student();

s.num = 1; s.age=2; s.name=”tom”;

程序运行的第一步:

是先把main方法加载到内存,从第一句话开始读起。当程序运行完,内存自动清空。

 

注意:

1) SS1称为Student类的对象,SS1存的实质上是一个地址,真正的数据在堆中。

所以我们的类是引用类型,引用就是地址的意思。

2) 每个类在被第一次使用时,都会被加载(从硬盘跑到内存)

3) 类是在硬盘上的(永久的),对象是在内存里的(临时的)

 

6、 面向对象程序的基本单位是类,类里面不光可以有变量,也可以有代码块(方法)。

class  A

{

   int a;

   public void showA(){  }

}

class  B

{

   int b;

   public void showB(){  }

}

class  C

{

  public static void main(String[] arg)

  {

     A a1 = new A();

     B b1 = new B();

     a1.a = 10;

     a1.showA();

     b1.b =11;

     b1.showB();

}

}

一个程序又若干个类组成,当程序被运行时,jvm会从这些类中找main方法,找到以后,先把main方法及其所在的类加载到内存中,然后从main中的第一句话开始运行。运行过程中,遇到哪类如果内存中没有,就加载。

不断的在内存中根据需要开辟空间,并赋值,调用方法。最后程序运行完,所有的对象都从内存中清空。

 

 

7、 方法:关键的内容是参数和返回值。

参数是声明在括号里的局部变量,和方法体中的普通变量一样使用,只不过,它可以接受传过来的值。

编写一个类,一个方法,参数是两个整数,返回值是这两个整数的和。

class Calc

{

   public  int  add(int a,int b)  //return表示算出结果,并返回,方法返回类型和return的值类型一致

{

   int c = a+b;

   return c;

}

}

class Test

{

   public static void main(String[] args)

   {

        Calc c = new Calc();

        int res = c.add(2,3); //res存放返回的结果,2,3分别传给了ab,去计算出一个5,给res

}

}

8、 方法的参数不光可以是普通变量,也可以是引用类型。

class Student
{

int num;

   int age;

   String name;

}

class Manager{

public void showInfo( Student s)

{

 System.out.println(s.num+”  ”s.age+”  ”+s.name);

}

}

------main

Student s1 = new Student();  s1.num=1; s1.age=12;  s1.name=”Tom”;

Manager m = new Manager();  m.showInfo(s1);