1,局部变量与成员变量的区别
- 1,在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上 - 2,在内存中的位置不同
成员变量:在堆内存(成员变量属于对象,对象进堆内存)
局部变量:在栈内存(局部变量属于方法,方法进栈内存) - 3,生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 - 初始化不同
成员变量:有默认初始化值
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用
2, 方法的形式参数
- 1,基本数据类型当作形式参数
- 2,引用数据类型当作形式参数
class Demo1_Student {
public static void main(String[] args) {
//创建对象的格式:类名 对象名 = new 类名();
//对象名:其实就是合法的标识符,如果是一个单词所有字母小写,如果是多个单词,从第二个单词开始首字母大写
Student s = new Student();
//* D:如何使用成员变量呢?
//* 对象名.变量名
s.name = “张三”;
s.age = 23;System.out.println(s.name + "..." + s.age); //* E:如何使用成员方法呢? //* 对象名.方法名(...) s.study(); s.sleep();
}
}
/*
* A:案例演示
* 属性:姓名,年龄,性别
* 行为:学习,睡觉
- B:我们如何描述现实世界事物
- 属性 就是该事物的描述信息(事物身上的名词)
- 行为 就是该事物能够做什么(事物身上的动词)
- C:Java中最基本的单位是类,Java中用class描述事物也是如此
- 成员变量 就是事物的属性
- 成员方法 就是事物的行为
- D:定义类其实就是定义类的成员(成员变量和成员方法)
- a:成员变量 和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
- b:成员方法 和以前定义方法是一样的,只不过把static去掉,后面在详细讲解static的作用。
*/
class Student {
String name; //姓名
int age; //年龄
String gender; //性别
public void study() { //定义学习的方法System.out.println("学生学习");
}public void sleep() { //定义睡觉的方法System.out.println("学生睡觉");
}
}
3,方法的构造
class Demo1_Constructor { //Constructor构造
public static void main(String[] args) {
Person p = new Person(); //在一创建对象的时候,系统就帮我调用了构造方法
//p.Person(); //构造方法不能用对象调用
p.show();Person p2 = new Person(); //再次创建对象p2.show();
}
}
/*
* A:构造方法概述和作用
* 给对象的数据(属性)进行初始化
* B:构造方法格式特点
* a:方法名与类名相同(大小也要与类名一致)
* b:没有返回值类型,连void都没有
* c:没有具体的返回值return;
*/
private String name;private int age;//构造方法public Person() {//System.out.println("Hello World!");//return; //构造方法也是有return语句的,格式是return;name = "张三";age = 23;}public void show() {System.out.println(name + "..." + age);}
}
public class jibenshujuleixing {public static void main(String[] args) {print(10); //print的返回值类型是void,故,直接调用即可;yywsq stu = new yywsq(); //创建对象并将对象的地址值赋值给s;print(stu);}public static void print (int x){ //基本数据类型当作形式参数System.out.println(x);}public static void print (yywsq s){ //引用数据类型当作形式参数s.name = "wsq";s.age = 19;s.speak();}
}class yywsq{String name;int age;public void speak(){System.out.println(name + "..." + age);}
}