A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 心梗二狗子 初级黑马   /  2019-9-21 22:53  /  773 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位大佬好:
    在学习经历的版块发技术贴,也不敢造次,发发最近的数组和对象的相关概念,如下请笑纳:    先推荐大家一个链接:   https://www.runoob.com/java/java-examples.html      ,有各种实例方法可以查阅试验,左侧也有各种的相关概念,概念中有超链接的方法都可以点进去看看实例用法。祝大家基础班升学考试旗开得胜。
数组:
1、声明与初始化
数组: 存储同一种数据类型的多个元素的容器。
声明格式:
        dataType[] arrayRefVar;       // 首选的方法
        dataType arrayRefVar[];       // 效果相同,但不是首选方法
数组的初始化:
A:动态初始化
        只给长度,系统给出默认值。               
                举例:int[] arr = new int[3];
B:静态初始化
        给出值,系统决定长度。               
                举例:int[] arr = new int[]{1,2,3};
                简化版:int[] arr = {1,2,3};
Java数组内存结构:
        数组名是一个引用(指针),在栈上存储,数组元素在堆上分配内存空间,有Java垃圾回收机制管理。
数组拥有属性:
        array.length ---->  数组的长度
2、二维数组
1. 元素是一维数组的数组。
2. 格式:
        A: 数据类型[][] 数组名 = new 数据类型[m][n];
        B: 数据类型[][] 数组名 = new 数据类型[m][];
        C: 数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};
        D: 数据类型[][] 数组名 = {{...},{...},{...}};
3. 内存模型
        a[m][n]中的a是引用的引用(二级指针),a[m]是引用(一级指针),a[0][0]是具体的数组元素。
3、方法

格式:
        修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...)  {
                方法体语句;
                return 返回值;
        }
使用方法时需要明确: ① 返回值类型    ② 参数列表
方法重载:
与C++中的函数重载一致。
        ① 在同一个类中,方法名相同,参数列表不同。与返回值无关。
        ② 参数列表不同:
                        参数的个数不同。
                        参数的对应的数据类型不同。
注意事项:
        A:  方法之间是平级关系,不能嵌套定义
        B:  如果方法有明确的返回值类型,就必须有return语句返回。
类和对象:
1、属性和方法
类是对现实事物的抽象,是对方法和属性的封装。
属性: 即类中的变量,包括:
局部变量:   => 在方法、构造方法或者语句块中定义的变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
成员变量:   => 在类中,方法体之外的变量定义。在创建对象的时实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
成员变量:   => 类变量也声明在类中,方法体之外,但必须声明为static类型。
构造方法:
格式:
        A:方法名和类名相同
        B:没有返回值类型,连void都不能有
        C:没有返回值
每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。
与C++类似,如如果我们给出了构造方法,系统将不再提供默认构造方法。
2、关键概念
Student s = new Student()执行的过程:
        (1)把Student.class文件加载到内存
        (2)在栈内存为s开辟空间
        (3)在堆内存为学生对象申请空间
        (4)给学生的成员变量进行默认初始化。null,0
        (5)通过构造方法给成员变量进行初始化。刘意,30
        (6)对象构造完毕,把地址赋值给s变量
匿名对象:
(1)没有名字的对象
(2)应用场景
        A:调用方法,仅仅只调用一次的时候。
        b:可以作为实际参数传递。
this关键字:
        代表当前类的本身的引用。
static关键字:
        (1)静态含义:
                可以修饰成员变量和成员方法。      
        (2)静态的特点:
                        A:随着类的加载而加载
                        B:优先与对象存在
                        C:被类的所有对象共享
                        D:可以通过类名调用
        (3)静态的内存图
                        静态的内容在方法区的静态区
        (4)静态的注意事项:
                        A:在静态方法中没有this对象
                        B:静态只能访问静态
3、代码块
(1)用{}括起来的代码。
(2)分类:
        A:局部代码块
                用于限定变量的生命周期,及早释放,提高内存利用率。
        B:构造代码块
                定义在类的成员位置上,使用"{}"括起来的代码。
                把多个构造方法中相同的代码可以放到这里,每个构造方法执行前,首先执行构造代码块。
        C:静态代码块
                定义在类的成员位置上,使用"{}"括起来的代码,只是多了一个static修饰。
                静态代码块是类被加载的时候就会执行,静态代码块只会被执行一次,对类的数据进行初始化。
        (3)静态代码块,构造代码块,构造方法的顺序问题?
                静态代码块 > 构造代码块 > 构造方法





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马