zoukankan      html  css  js  c++  java
  • 第2章-对象

    Think in java 读书笔记

    pikzas

    2019.03.03

    第2章 一切都是对象

    知识点

    Java存储对象的地方

    • 寄存器
    • 堆栈
    • 常量存储(常量池)
    • 非RAM存储(文本文件 数据库 流对象等)

    基本类型

    • boolean
    • char 16bits (unicode 0 ~ unicode 216-1)
    • byte 8bits (-128 ~ 127 )
    • short 16bits (-215 ~ 215-1)
    • int 32bits (-231 ~ 231-1>)
    • long 64bits (-2)63 ~ 263-1)
    • float 32bits (IEEE754 ~ IEEE754)
    • double 64bits (IEEE754 ~ IEEE754)

    1 byte(比特) = 8 bits(位)
    1 bit 有两个取值:0或者1。
    对于普通的对象,new操作会在堆上创建一个对象,返回一个索引。
    但是对于基本数据类型,new操作会直接在堆栈上放入一个基本类型的数值。
    这样做的好处是可以提高效率。

    作用域scope

    作用域指的是对象引用的可用范围

    class Demo{
        Demo x = new Demo();
    }
    // print(x);
    

    引用x的作用域仅在花括号之中,超出界限范围,编译时候就会报错。但是创建的对象在垃圾回收之前还是存在于内存中的。

    对于OOP语言来说,万事万物皆对象,然而基本数据类型仅能表示简单的几种数据类型,对于复杂对象,我们可以自定义类class来描述。

    class Person{
        private String name = "pikzas";
        private int age = 24;
        private String address;
        public void sayHi(){
            int x = 10;
            System.out.println("hello world, i am pikzas");
        }
    
    }
    

    类是现实世界的代码抽象,现实物体都有属性和功能,对照类就是成员变量和方法

    上面例子中的name、age、address都是成员变量,sayH是成员方法。x是局部变量,局部变量必须给定初始值,否则编译报错,成员变量可以不给定初始值。然后对象初始化的时候会给定默认值。

    方法

    一个方法由

    • 返回类型
    • 方法名
    • 参数列表
    • 方法体

    四部分构成

    方法名和参数列表合称为方法的签名,用以区分不同的方法(重载 overload)。

    要注意的是调用方法传递的是值传递,并不是引用传递。(参见Java中的值传递)

    class Demo{
        List a = Arrays.asList(new int[]{1,2,3,4});
        
        private void fun(List param){
            for (int i : param) {
                i = i + 10;
            }
        }
        
    }
    

    return的两个作用

    • 表明方法执行结束
    • 表明返回一个结果

    static关键字

    对于有static修饰的属性或者方法,它具有两个特点

    • 不需要创建该类的对象,就能直接使用
    • 该属性只与该类有关系,与该类生成了多少对象毫无关联。

    所以也成static修饰的属性或者方法叫做类属性和类方法

    class Demo{
        static int i = 47;
    }
    class Test{
        Demo d1 = new Demo();
        Demo d2 = new Demo();
    }
    

    如上,d1.i和d2.i都是47,同时都是指向同一个内存地址
    调用 Demo.i++之后,两者依旧指向同一个地址,且数据都为48.

  • 相关阅读:
    ios中从相册:相机中获取图片信息
    ios中图片的绘画和截图
    UIPickView的简单介绍
    封装类的方式访问数据库(封装字符串、json)
    ajax用户名案例(重点)
    mysql中一对一,一对多,多对多关系
    会话控制:SESSION,COOKIE
    ajax简单案例:返回json型
    ajax同步,异步
    ajax简单案例:字符串返回类型
  • 原文地址:https://www.cnblogs.com/Pikzas/p/12152622.html
Copyright © 2011-2022 走看看