类
创建类
public class 类名{
1.成员变量(属性)
2.成员方法(行为)
}
例如
public class Phone {
String brand;
double price;
public void call() //行为
{
System.out.println("手机在打电话");
}
public void playgame() //行为
System.out.println("手机在玩游戏");
}
}
引用类
public class Phone_test {
public static void main(String[] args) {
Phone p=new Phone(); //定义一个Phone类的变量p
p.brand = "小米"; //为成员变量赋值
p.price = 2999; //
System.out.println(p.brand);
System.out.println(p.price);
p.call(); //调用行为
p.playgame();
}
}
总结
封装
private
在成员变量前加private,此变量只能在本类使用,如想在其他类使用:
赋值要用set,打印获取用get
setAge:给成员变量age进行赋值,可通过set对输入进行设置条件
getAge:对外提供成员变量age的值
private int age;
private String name;
private double height;
private double weight;
先设置set
public void setAge(int a) //set:赋值
{
if(a>=18&&a<=50)
{
age=a;
}else
{
System.out.println("年龄都输不对什么脑瘫");
}
}
再设置get
public int getAge()//get:获取
{
return age;
}
在其他类中调用
C.setAge(18);
System.out.println("年龄:"+C.getAge());
总结
this关键字
对变量起名需要做到见名知意,会出现变量名重复的情况,此时系统会进行就近原则,优先使用距离最近那个变量的值, 如果想要使用成员变量的值就需要使用this关键字来标明
未使用this,此时输出结果为0,因为成员变量默认初值为0
public void setAge(int age) //set:赋值
{
if(age>=18&&age<=50)
{
age=age;
}else
{
System.out.println("年龄都输不对什么脑瘫");
}
}
使用this关键字,输出结果为正常值,this.代表成员变量的值
public void setAge(int age) //set:赋值
{
if(age>=18&&age<=50)
{
this.age=age;
}else
{
System.out.println("年龄都输不对什么脑瘫");
}
}
所以,this可以区分成员变量和局部变量
总结
方法
构造方法
常规创建一个方法时为空参,值为系统自动初始化,例如int初始化为0,get后也为0,想要使用get获取需要先使用set进行赋值
public GirlFriend() {
}
public void setAge(int age) //set:赋值
{
if(age>=18&&age<=50)
{
this.age=age;
}else
{
System.out.println("年龄都输不对什么脑瘫");
}
}
public class TestGirlFriend {
public static final GirlFriend C = new GirlFriend();
public static void main(String[] args) {
C.setName("俄洛伊");
C.setAge(18);
System.out.println("姓名:"+C.getName());
System.out.println("年龄:"+C.getAge());
}
}
但是我们可以创建一个带参方法
public GirlFriend(String name,int age)
{
this.name=name;
this.age=age;
}
直接赋值调用
public static void main(String[] args) {
GirlFriend e =new GirlFriend("张三",19);
System.out.println(e.getName());
System.out.println(e.getAge());
}
建议在任何时候都写上带空参和带参数的方法,因为虽然直接写有参方法简单便捷,但是没有无参灵活,假如需要键盘录入赋值,我们事先并不知道数值,没法使用有参构造,这时需要无参构造
方法的重载
可以创建多个同名,但形参不同的方法
public GirlFriend(String name,int age)
{
this.name=name;
this.age=age;
}
public GirlFriend(int age)
{
this.age=age;
}
系统会根据输入的数据自动选择相应的方法
public static void main(String[] args) {
GirlFriend e=new GirlFriend("ZZ",14);
GirlFriend a=new GirlFriend(14);
}
总结
标准的JavaBean类