属性和变量的区别是什么?
叫法不同,但是一个意思,如:
比如说车是一个类,宝马就是类的一个对象,宝马的价格就是宝马的属性,在java类中的声明属性就是变量,所以对象的属性就是变量,对象为空可以,但是对象为空不能拿去用。其实是一样的,只是用在不同的位置,给它起了不同的名字。属性:通常是这个变量定义在一个类中,随着这个类产生,这个变量(属性)就存在的。而单单说变量的话通常就是在一个方法中定义,随这个方法的执行而产生结束而消亡,或许在更小的范内起作用。
- public Wheel wheel;//车里面有一个轮子-->包含关系
- Car car = new Car("宝马","Z4","宝石蓝",new Wheel("米其林",400,"黑色"));//聚合属性
package contains;
public class Car {
//属性不赋值是有初值存在的 变量没有没有
//属性
public String brand;//汽车品牌
public String type;//型号
public String color;//颜色
public Wheel wheel;//车里面有一个轮子-->包含关系
//构造方法
public Car(){}
public Car(String brand, String type,String color,Wheel wheel){
this.brand = brand;
this.type = type;
this.color = color;
this.wheel = wheel;
}
//方法
public void showCar(){
System.out.println("这是一辆" + brand + "牌的" + type + "型号" + color + "的小汽车");
System.out.println("车上搭载着" + wheel.brand +"牌的" + wheel.size + "尺寸"+ wheel.color + "颜色" );
wheel.turn();//方法一定是对象调用的 可以放置任何地方
}
}
package contains;
public class Wheel {
//属性
public String brand;//品牌
public int size;//尺寸
public String color;//颜色
//构造方法
public Wheel(){}
public Wheel(String brand,int size,String color){
this.brand = brand;
this.size = size;
this.color =color;
}
//方法
public void turn(){
System.out.println("车轮可以转");
}
}
package contains;
public class Test {
public static void main(String[] args){
Car car = new Car("宝马","Z4","宝石蓝",new Wheel("米其林",400,"黑色"));//聚合属性
// 和上一行一样
// Car car = new Car(); //new Car();是专门用来使用构造方法;
// car.brand = "宝马";
// car.type = "Z4";
// car.color = "宝石蓝";
// car.wheel = new Wheel(); //聚合属性
// car.wheel.brand = "米其林";
// car.wheel.size = 400;
// car.wheel.color = "黑色";
car.showCar();//展示汽车
}
}
"C:\Program Files (x86)\Java\jdk1.7.0_71\bin\java.exe" ...
这是一辆宝马牌的Z4型号宝石蓝的小汽车
车上搭载着米其林牌的400尺寸黑色颜色
车轮可以转
- public class Farmer {
- public Pig feedPig(int month){
- Pig pig = new Pig("小花");//在屠夫的方法中使用到了猪的对象 1.在方法中自己创建
- pig.growUp(month);//20-->640
- return pig;
- }
- }
- public class Butcher {
- public void killPig(Pig pig){ //2.在方法中传递参数 来使用猪的对象
- Pig pigName = pig.getName();
- }
- }
- public class Test {
- public static void main(String[] args){
- Farmer farmer = new Farmer();
- Pig pig = farmer.feedPig(5);
- Butcher butcher = new Butcher();
- butcher.killPig(pig);
- }
- }
package rely;
public class Farmer {//农夫
//农夫养猪-->条件
// 参数-->几个月 返回值-->是一头猪
public Pig feedPig(int month){
Pig pig = new Pig("小花");//在屠夫的方法中使用到了猪的对象
pig.growUp(month);//20-->640
return pig;
}
}
package rely;
public class Pig {//描述猪
//属性
private String name;
private int weight = 20;
//构造方法
public Pig(){}
public Pig(String name){
this.name = name;
}
//方法
//描述一个方法 表示小猪被杀
public void beKilled(){
System.out.println(this.name + "被杀了,好惨呀");
}
//方法
//描述一个方法 让猪长肉
// 每一个月长到前一个月的两倍
// 返回值表示长大后猪的体重
public void growUp(int month){
for(int i=1;i<=month;i++){
this.weight *= 2;
}
}
//描述一个方法 猪告知他的体重
public int getWeight(){
return this.weight;
}
public String getName(){
return this.name = name;
}
}
package rely;
public class Butcher {//描述屠夫
//属性
//方法
//描述一个屠夫杀猪方法 需要提供条件 一头猪
public void killPig(Pig pig){
System.out.println("屠夫执行了杀猪方法");
String pigName = pig.getName();
int pigWeight = pig.getWeight();
System.out.println(pigName + "的体重为:" + pigWeight);
pig.beKilled();
}
}
package rely;
public class Test {
public static void main(String[] args){
//创建屠夫对象
Farmer farmer = new Farmer();
//农夫做一件事情-->养猪
Pig pig = farmer.feedPig(5);
//创建屠夫对象
Butcher butcher = new Butcher();
//屠夫做事情-->杀猪
butcher.killPig(pig);
}
}
"C:\Program Files (x86)\Java\jdk1.7.0_71\bin\java.exe" ...
屠夫执行了杀猪方法
小花的体重为:640
小花被杀了,好惨呀