对象与方法
1、对象作为方法的参数类型
当一个对象作为参数,传递到方法中时,实际上传递的是对象的地址值
//创建对象
public class Phone {
String color;
double price;
String band;
public void call(long a){
System.out.println("电话号码为"+a);
}
public void massage(){
System.out.println("群发短信");
}
}
public class Demo02 {
public static void main(String[] args) {
Phone one = new Phone(); //将参数one的类型定义为Phone
one.band="三星";
one.color="white";
one.price=1222.3;
method(one); //调用方法method,参数为one,参数类型为Phone
}
public static void method(Phone a) { //方法参数a的类型为Phone
System.out.println(a.band);
}
}
2、对象作为方法的返回值
当使用一个对象作为方法的返回值时,返回的数据为对象的地址值
package day1009;
public class Phone {
String color;
double price;
String band;
public void call(long a){
System.out.println("电话号码为"+a);
}
public void massage(){
System.out.println("群发短信");
}
}
package day1009;
public class Demo03 {
public static void main(String[] args) {
method();
}
public static Phone method(){
Phone one = new Phone();
one.band = "三星";
one.color = "white";
one.price = 1222.3;
return one;
}
}
2、对象中的成员变量 与 方法中的局部变量区别
- 定义的位置不一样
局部变量:在方法内部
成员变量:方法外部,直接写在类中 - 作用范围不一样
局部变量:只在方法中
成员变量:整个类通用 - 默认值不一样
局部变量:无默认值,要想使用,必须手动赋值;
成员变量:有默认值;
面向对象三大特征之封装性
面向对象三大特征:封装,继承,多态
封装就是将一些细节信息隐藏,对于外界不可见。
1.封装性在JAVA中的体现:
- 方法就是一种封装
- 关键字
private
也是一种封装
2.private
关键字的作用与使用:
-
private
作用:
对类中的成员变量进行约束(修饰)
例如:
下方代码中年龄应该大于0岁,所以要用private
进行约束
public class Xinxi {
int age;
public void show() {
System.out.println("年龄" + age);
}
}
public class Demo {
public static void main(String[] args) {
Xinxi one = new Xinxi();
one.age=-33;
one.show();
}
}
-
private
使用:
private
直接在变量类型前修饰
public class Xinxi {
private int age;
public void show() {
System.out.println("年龄" + age);
}
}
用private修饰后的成员变量只能在本类中使用,在类外要用setter与getter方法调用
public class Demo {
public static void main(String[] args) {
Xinxi one = new Xinxi();
one.age=-33; 错误!!类外不能直接调用
one.show();
}
}
- 类中创建
setXxx
方法,用于修饰的成员变量
public class Xinxi {
private int age;
public void show() {
System.out.println("年龄" + age);
}
public void setAge(int num){
if (age>0){
age=num;
} else {
System.out.println("数据错误");
}
}
}
- 类中创建
getXxx
方法,用于返回的成员变量(布尔类型用isXxx
)
public class Xinxi {
private int age;
public void show() {
System.out.println("年龄" + age);
}
public void setAge(int num){
if (num>0){
age=num;
} else {
System.out.println("数据错误");
}
}
public int getAge(){
return age;
}
}
public class Demo {
public static void main(String[] args) {
Xinxi one = new Xinxi();
one.setAge(12);
one.show();
}
}
练习:
package day1009;
public class Student {
private String name;
private int age;
private boolean male;
public void setName(String a) {
name = a;
}
public String getName() {
return name;
}
public void setAge(int b) {
age = b;
}
public int getAge() {
return age;
}
public void setMale(boolean c) {
male = c;
}
public boolean isMale() { "布尔类型用 isXxx"
return male;
}
}
package day1009;
public class Demo04 {
public static void main(String[] args) {
Student stu =new Student();
stu.setAge(13);
stu.setName("张三");
stu.setMale(true);
System.out.println("年龄"+stu.getAge());
System.out.println("姓名"+stu.getName());
System.out.println("男?"+stu.isMale()); "布尔类型用 isXxx"
}
}