定义类的时候,属性和方法不是必须的。
一个源文件中可以有许多个类,但是有且只能有一个public修饰的类,并且这个源文件的名称必须和public修饰的类名一致。
属性:(成员变量)
语法: [修饰符] 数据类型 属性名 = [默认值];
注意:
1、修饰符和默认值可以没有,没有的时候系统会根据数据类型对应的给默认值
2、数据类型和属性名一定要有,属性名的定义要符合合法的标识符命名规范
方法:
语法:
[修饰符] 方法的返回类型 方法名(形参列表){
*逻辑代码;
}
注意:
1、方法可以没有修饰符,java中的修饰符有四个(public、protected、[default]、private后面会讲)
2、方法的返回类型可以没有,void代表无值返回
3、方法的返回类型可以是任意的数据类型,换句话说可以是基本数据类型,也可以是引用数据类型
4、方法的形参列表也可以没有,如果有多个形参列表的时候,需要用逗号
对象的创建:(实例化的过程)
ClassName objectName = new ClassName();
注意:
1、通过new关键字创建了一个叫objectName的对象,我们称objectName是ClassName一个实例或者说一个对象
如何使用属性和方法:
1、使用对象.成员
2、使用对象.属性 对象.方法 调用
写法 例:
public class HelloWorld{
//定义属性 int a;
//定义一个方法 void introduce(){
public static void main(String [] args){
//创建对象
HelloWorld helloWorld=new HelloWorld();
//调用方法 helloWorld.introduce();
//修改属性 helloWorld.a=1;
//输出属性 System.out.println(a);
}
}
变量
局部变量:
定义:在方法内定义的变量称为局部变量
作用域:从变量定义开始到方法结束
注意:
1、局部变量只能在当前方法中使用,其他地方都不能使用
2、局部变量如果没有使用,只是定义的话,不会报错,但是如果有引用那么必须先进行初始化才能使用
3、局部变量没有默认值,所以在使用之前必须先进行初始化
成员变量:(全局变量)
定义:在方法之外,类内定义的变量称为成员变量
作用域:整个类体都可以访问
注意:
1、成员变量有默认值,系统会根据变量的数据类型默认的给默认值
int返回0 boolean返回false String返回null
构造方法:
在创建对象的时候默认会调用构造方法,在堆中进行存储,主要目的是为了对成员变量进行初始化操作
语法:
修饰符:4个,后面再讲(public、protected、[default]、private)
返回值:构造方法没有返回值
方法名:构造方法的名称必须和类名保持一致
参数列表:和普通方法一样
方法体:主要是为成员变量进行初始化操作
注意:
1、当程序中没有显示的声明一个构造方法的时候,系统会给你一个默认的不带任何参数的空构造方法来供你创建对象使用
2、当你在程序中显示的声明了一个非空的构造方法,那么java编译器就不会再给你那个空参的构造方法了,
但是这时候你又想用空参的构造方法,那么只有再定义一个构造方法了
3、一个类中可以有多个构造方法
重载(overload):在一个类中可以有多个同名的方法,但是要求方法的参数列表不同
三方面的不同:
1、参数个数不同
2、参数类型不同
3、参数顺序不同
注意:
一般都需要使用构造方法的重载,因为成员变量可能会有很多个,但是我们只需要对部分成员变量进行初始化操作