Java编程思想 一切都是对象

一切都是对象

1.类、对象、对象的引用的概念:

抽取同类实体的共同性,定义的一种数据类型称为抽象的

类的一个具体实例称为对象具体的

对对象的操作称为引用。 通过使标识符指向数据来引用,这里的标识符类似于C语言中的指针。

UML中类的表示:类名、属性、数据成员、方法

2.类、对象的创建和对象的使用:

类的创建举例:

public class Dog{//ClassName
  String color;
  int age;//DataMember
  void barking(){
  }
  void hungry(){
  }//Method
}

对象的创建举例:

Dog myDog = new Dog();

使用new关键字

对象的操作举例:

myDog.age;
myDog.hungry();
3.对象的作用域:

在C、C++和Java中,作用域由花括号的位置决定:

{
    int x = 12;//Only x available
    {
        int q = 96;//Both x&q avaliable
    }
    //Only x avaliable, q is "out of scope"
}

以下代码在C和C++中是合法的,但在Java中不能这样写,因为Java的设计者认为这样会导致程序混乱:

{
    int x = 12;
    {
        int x = 96;
    }
}

Java对象不具备和基本类型一样的生命周期:

{
    String s = new String("a string");
}//End of scope

引用s的作用域消失了,但是s指向的String对象仍然占据着内存空间。在这个作用域之外,由于对它唯一的引用已经超出了作用域的范围,我们无法访问这个对象,但它并没有消失。垃圾处理器将会对它进行处理。

4.基本类型:

基本类型与Object类型的不同点:

存储位置不同:

char c = 'x';
Character c = new Character('x');

基本类型中c的值为‘x’,存储在栈(stack)中。

Object类型标识符c存储在栈中,但是数据’x’存储在堆(heap)中。栈中的c指向堆中的x,即c引用了x。

栈的访问速度快,但是不如堆存储灵活。

操作方法不同:

基本类型多用操作符对数据进行操作,Object类型多用method对数据操作。

基本类型中没有引用,直接赋值给变量。

Java的自动初始化只针对定义在类里的DataMember变量,方法里面的局部变量也不行。
public class Test {
    static int x;   //不初始化直接调用也可以
    void increase() {
        x++;
        System.out.println(x);
    }

考虑到基本类型特殊性带来的诸多不便,每个基本数据类型都对应一个包装器类。

BigIntegerBigDecimal大体属于包装器的范畴,但是二者没有对应的基本类型。不过,它们中包含的方法,提供的操作与对基本类型所能执行的操作类似。

5.基本类型易出现的错误:

默认小数一般为double类型,如果要用float定义变量,需要float a = 3.12f 不加f会报错

注意给变量赋值时,不要超过相应基本类型的取值范围

注意给变量赋值时,不要超过相应基本类型的取值范围

6.static关键字:

static关键字可以修饰成员变量和方法,使其从对象的所属,变为类的所属,即多个对象共享一个成员变量或者方法。

​ static若修饰成员变量,可以使多个对象共享一个成员变量。

​ static若修饰成员方法,最大的作用是可以通过类名.方法名的方式操作方法,不用new出对象。

7.注释:

普通的单行注释与多行注释不在Java输出结果中显示。

生成javadoc说明注释:

/**
*
*/
8.存储位置简介

寄存器:位于处理器内部,是最快的存储区。由于寄存器数量非常有限,所以需要按需分配。一般不能直接控制,也无法感受到它的存在。(C和C++允许向编译器建议寄存器的分配方式)。

堆栈:位于通用RAM(随机访问存储器)中,可以通过堆栈指针从处理器获得直接支持。是仅次于寄存器的快速有效的存储方式。创建程序时,为便于上下移动指针分配释放内存,系统必须知道存储在堆栈中变量确切的生命周期。这限制了程序的灵活性。

:一种位于RAM区通用的内存池。由于编译器不知道存储在堆中的数据要存活多长时间,所以在堆中分配存储具有很大的灵活性。但需要花费更多的时间。

常量存储:直接存放在代码的内部。

非RAM存储:如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也会存在。

猜你喜欢

转载自blog.csdn.net/ljfyyj/article/details/80214072