import java.util.Arrays;
public class array01 {
public static void main(String[] args) {
int [] array = {2,4,6,8,9};
System.out.println(Arrays.toString(array));
}
}
- 成员变量是直接定义在类当中的,在方法外面。
- 成员方法不要写static关键字。
- 过程:
- 导包:也就是指出需要使用的类,在什么位置。
Import 包名称.类名称;
对于和当前类属于同一个包的情况,可以省略导包语句不写。
- 创建 格式:
类名称 对象名 = new 类名称();
Student stu = new Student()’
- 使用:
使用成员变量:对象名.成员变量名。
使用成员方法:对象名.成员方法名(参数)
- 当一个对象作为参数,传递到方法当中时,实际上传递进去的是对象的地址值。
- 当使用一个对象类型作为方法的返回值时,返回值其实就是对象的地址值。
package yap01;
public class yap11 {
public static void main(String[] args) {
Phone two = getPhone();
System.out.println(two.brand);
System.out.println(two.price);
System.out.println(two.color);
}
public static Phone getPhone(){
Phone one = new Phone();
one.brand="苹果";
one.price = 8388;
one.color="玫瑰金";
return one ;
}
}
- 局部变量和成员变量:
- 定义的位置不一样
局部变量:方法内部
成员变量:方法外部,直接在类当中
- 作用范围不一样
局部变量:只有方法当中可以使用
成员变量:整个类全都可以通用。
- 默认值不一样
局部变量:没有默认值,如果想要使用,必须手动赋值。
成员变量:如果没有赋值,会有默认值,规则和数组一样。
- 内存的位置不一样
局部变量:位于栈内存
成员变量:位于堆内存
- 生命周期不一样
局部:随着方法进栈而诞生,出栈消失
成员:随着对象创建而诞生,随着对象被垃圾回收而消失。
- 面向对象三大特征:封装、继承、多态
封装在Java中:
- 方法就是一种封装
- 关键字private也是一种封装
问题描述:定义Person的年龄时,无法阻止不合理的数值被设置进来。
解决:用private关键字将需要保护的成员变量进行修饰。
package anyapei01;
public class yap11 {
private int age;
String name;
public void show(){
System.out.println("我叫"+name+a);
}
public void setAge(int num){
age = num ;
}
public int getAge(){
return age;
}
}
62. package yap01;
public class Student {
private String name;
private int age;
private boolean male;//对于基本类型Boolean,set不变,get方法写成is
public void setMale(boolean b){
male = b;
}
public boolean isMale(){
return male;
}
public void setName(String str){
name = str ;
}
public String getName(){
return name;
}
public void setAge(int num){
age = num;
}
public int getAge(){
return age;
}
}
package yap01;
public class yap11 {
public static void main(String[] args) {
Student stu = new Student();
stu.setName("dakeai");
stu.setAge(20);
stu.setMale(true);
System.out.println(stu.getName());
System.out.println(stu.getAge());
System.out.println(stu.isMale());
}
}
- 当方法的局部变量和成员变量重名的时候,根据“就近原则”,优先使用局部变量。
如果需要访问本类中的成员变量,需要: this.成员变量名
(通过谁调用的方法,谁就是this)
例如:
package yap01.demo11;
public class Person {
String name;
public void sayHello(String name){
System.out.println(name+"hello,I am"+this.name);
}
}
package yap01.demo11;
public class Person1 {
public static void main(String[] args) {
Person person = new Person();
person.name = "yap";
person.sayHello("hah");
}
}
- 构造方法:
Public 类名称(参数类型 参数名称){
方法体
}
注意事项:
- 构造方法的名称必须和所在类名称完全一样,大小写也要一样。
- 构造方法不要写返回值,连void也不写。
- 构造方法不能return一个具体的返回值。
- 如果没有编写构造方法,编译器会默认赠送一个构造方法,没有参数、方法体什么事情也不做。
- 一旦编写了至少一个构造方法,那么编译器不再赠送。
- 构造方法也可以重载
例如:
public class Person {
public Person(){
System.out.println("构造");
}
public static void main(String[] args) {
Person person = new Person();
}
}
new 对象就是在调用构造方法。
- 一个标准的类要有:
- 所有的成员变量都要使用private关键字修饰。
- 为每一个成员变量编写一对getset方法
- 编写一个无参数的构造方法。
- 编写一个全参数的构造方法。
- Alt+ins 快捷键可以直接生成构造方法。