文章目录
前言
提示:这里可以添加本文要记录的大概内容:
提示:以下是本篇文章正文内容,下面案例可供参考
一、变量
变量分类:局部变量、成员变量(实例变量)、静态变量
类型 | 声明位置 | 从属于 | 声明周期 |
---|---|---|---|
局部变量 | 方法体内或语句块内 | 方法/语句块 | 从声明位置开始,直到方法或语句块执行完毕,局部变量消失 |
成员变量(实例变量) | 类内部,方法外部 | 对象 | 对象创建,成员变量也跟着创建。对象消失,成员变量也跟着消失 |
静态变量(类变量) | 类内部,static修饰 | 类 | 类被加载,静态变量就有效;类被卸载,静态变量消失 |
1.局部变量
示例代码:
public int sum(int a,int b){
int sum = 0; //局部变量
sum = a+b;
}
2.成员变量(实例变量)
2.1 声明
【修饰符】 class 类名{
【修饰符】 数据类型 成员变量名;
}
实例代码:
public class Person{
String name;
char gender;
int age;
}
⚠️小结:
- 类型要求:可以是Java的任意类型,包括基本数据类型、引用数据类型(类、接口、数组等)
- 修饰符:成员变量的修饰符有很多,例如:public、protected、private、static、volatile、transient、final等。
2.2 实例变量默认值
分类 | 数据类型 | 默认值 |
---|---|---|
基本类型 | 整数(byte,short,int,long) | 0 |
基本类型 | 浮点数(float,double) | 0.0 |
基本类型 | 字符(char) | ‘\u0000’ |
基本类型 | 布尔(boolean) | false |
基本类型 | 数据类型 | 默认值 |
引用类型 | 数组,类,接口 | null |
⚠️小结
- 只有成员变量才有默认值,静态变量的值是类共享的。
- String类型没有默认值,使用前需要初始化
2.3 实例变量访问
示例代码:
对象.实例变量
- 实例变量从属于对象,且不同对象之间变量相互独立。
- 实例变量只能通过对象使用。
3.静态变量
3.1 什么是静态变量?
- 静态变量是由static关键字修饰的变量,从属于类。
实例代码:
class demo{
static int number; //静态变量声明定义。
}
3.2 静态变量访问
- 静态变量,在类的内部,可以由任何方法直接访问静态变量。
- 在其他类中,可以通过类名访问该类中的静态变量。
实例代码:
class DemoA{
static int number;
public void methodOne(){
System.out.println(number); //类中方法直接访问
}
}
class DemoB{
public void methodTwo(){
System.out.println(DemoA.number); //类名.属性
}
}
⚠️小结
- 运行时,Java虚拟机只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。
二、方法
1.方法前言
1.1 方法概念
- 方法也叫函数,是一个独立功能的定义,是一个类中最基本的功能单元。
1.2 方法的作用
- 把一个功能封装为方法,可以实现代码复用,减少代码量。
1.3 使用方法原则
- 先声明后使用
- 不调用不执行,调用一次执行一次。
1.4 方法分类
- 静态方法:有static修饰的方法,也叫类方法,
可以
由类调用。 - 实例方法:没有static修饰的方法,必须通过实例对象来调用。
2.方法声明
- 语法格式
[修饰符] 返回值类型 方法名 (参数列表){
方法体;
return 返回值;
}
修饰符:public static 等都是修饰符
- 方法声明位置
类中,方法体外
- 示例代码
class TestOne{
//公开静态方法,无返回值类型
public static void methodOne(){
System.out.println("test methondOne");
}
}
⚠️小结
静态方法和普通方法的声明基本相同,只是没有static修饰
。
3.方法调用
3.1 普通方法
- 语法格式:
对象名.方法名;
- 示例代码
public class Test {
public static void main(String[] args){
Demo demo = new Demo();
demo.methodOne();
}
}
class Demo{
public void methodOne(){
System.out.println("hello");
}
}
⚠️注意
- 这里静态方法main访问非静态方法methodOne 通过创建对象访问。
- 静态方法无法访问非静态方法和属性。(类加载顺序有关)
3.2 静态方法
- 语法格式
对象名.静态方法; //不推荐
or
类名.静态方法;//推荐
- 示例代码
public class Test {
public static void main(String[] args){
Demo.methodOne();
Demo demo = new Demo();
demo.methodOne();
}
}
class Demo{
public static void methodOne(){
System.out.println("hello");
}
}
总结
- 由static修饰的方法叫静态方法,静态方法不需要创建对象,由类名直接调用
- 静态成员只能访问静态成员,不能访问非静态成员
- 普通成员可以访问静态成员。
- 静态方法属于类,不属于某个特点的对象。