JAVA(2)

一.导入包

import java.util.Arrays;  //导入包
//1.导包
//import 包名称.类名称
import javaClass.Student;
//2.创建对象,使用类
//类名称 对象名 = new 类名称();
//3.使用
//对象名.成语方法/变量;

二.Java类内存分布

在这里插入图片描述

  • 将类的内容放入方法区,再放入main函数
  • 2.再在栈中调用main函数
  • 3.创建一个类的实例即对象,在堆中new一个新的类,放入成员变量,以及成员方法的地址,然后将堆中类的地址放入栈的实例中
  • 4.未修改前,通过实例在堆中的地址调用成员变量默认值
  • 5.通过地址修改堆中的成员变量值
  • 6.调用成员方法,通过栈到堆,堆到方法区的地址将方法区中的类方法压入栈中
  • 7.调用后再将方法出栈

特殊情况

1.两个引用指向同一个对象

Student stu2 = stu1;

相当于把地址传给了新的对象,共同指向堆中的一个实例

2.将类对象作为参数传递给函数或者是作为函数的返回值,实际上是将对象的地址值进行了传递

三.局部变量与成员变量比较

1.定义的位置不一样
局部变量:在方法内部
成员变量:在方法的外部,直接写在类当中

2.作用范围不一样
局部变量:只有方法中才能使用,出了方法后不能再使用
成员变量:整个类都可以通用

3.默认值不一样:
局部变量:无默认值
成员变量:会有默认值

4.内存的位置不一样
局部变量:位于栈
成员变量:位于堆

5.生命周期不一样
局部变量:随着方法进栈而诞生,随着方法出栈而消失
成员变量:随着对象创建而诞生,随着对象被解构而消失

三.类的注意事项

1.面向对象的三大特征:继承、封装、多态

2.间接访问或者修改private关键字修饰成员变量,需要使用Getter/Setter方法
命名规则为setXXX或者getXXX,如果是boolean变量则写成isXXX的形式

3当方法的局部变量和类的成员变量同名时,根据就近原则,优先使用局部变量
通过谁调用的方法,谁就是this

四.类构造方法与类的组成部分

格式:public 类名称(参数类型 参数名称){}

public Student()
{
    System.out.println("!!");
}

注意事项:

  • 1.构造方法一定不要有返回值类型,void也不需要写
  • 2.不能return返回值
  • 3.如果没有任何构造方法显式定义,那么编译器将会自动定义一个构造方法,没有参数,不做任何事情
  • 4.一旦编写了一个构造方法,编译器就不再自动定义构造方法

一个标准的类包含四部分

  • 1.所有的成员变量用private关键词修饰
  • 2.为所有成员变量定义一对Getter/Setter的方法
  • 3.编写一个无参数的构造方法
  • 4.编写一个全参数的构造方法

五.static修饰符(重点)

定义:多个对象共享同一个相同数据,只在类当中保存唯一一份,内容不再属于对象自己而是属于类的

1.修饰成员方法

public static void methodStatic(){
    System.out.println("Static");
}

非静态方法需通过对象调用
静态方法则可以推荐对象或是类名调用(推荐)

Student.methodStatic();

对于本类当中的静态方法进行调用,可以省略类的名称

(1)静态方法可以访问静态变量,不能直接访问非静态
原因:因为在内存当中是现有的静态内容后有非静态内容

(2)静态方法中不能用this
原因:this代表当前对象,通过谁调用的方法谁就是当前对象,而静态方法编译时是调用的类的方法,没有对象

2.静态代码块

static{
    System.out.println("!!!!");
}
//当第一次用到本类时,静态代码块执行唯一一次
//静态内容总是优先于非静态,所以会先执行静态代码块中内容然后再执行构造函数内容

六.Arrays常用方法

1.toString()
将参数数组变成字符串

int[] array = {10,20,30,40};
System.out.println(Arrays.toString(array));

2.sort()

  • 按照默认升序对数组的元素进行排序
  • 如果是字符串进行sort则会按照字母升序
  • 如果是自定义类型,需要有Comparable或者Comparator接口的支持

示例代码:

String[] array2 = {"bbb","aaa","ccc"};
Arrays.sort(array2);
System.out.println(Arrays.toString(array2));

or接口的支持

示例代码:

String[] array2 = {"bbb","aaa","ccc"};
Arrays.sort(array2);
System.out.println(Arrays.toString(array2));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值