面向对象 参数传递 (方法 -- 构造方法--重载)

今天学习了面向对象的编程思想,首先 要来说一下 类的定义:

   1.若干具有相同属性和行为的群体或抽象

   2.类是创建对象的模板

   3.类由两部分组成:属性和行为

面向对象的编程思想: 

 对问题进行分析,定义对象模型(类),然后根据模型创造对象,使用对象解决问题

类的定义:

【修饰符】 class 类名{

//成员变量

【修饰符】 数据类型 变量名

//成员方法

【修饰符】 返回值类型 方法名(参数..){

  //方法体:用于完成某个功能的语句(解决某个问题的语句组)

}

//构造器

【修饰符】 构造器名(参数..){

 //方法体

 }

}


对象的使用:

1.声明一个类的类型的变量

类名 对象名;

2.创建一个对象

对象名=new 构造器名(参数);

3.给对象的属性赋值

对象名.属性=值


成员变量和局部变量的区别:

1.成员变量定义在类中 而局部变量定义在方法体中

2.成员变量的作用域在整个类中 而局部变量的作用域在所定义的方法体中

3.成员变量可以有修饰符 而 局部变量的修饰符只有final

4.成员变量有缺省值 局部变量没有缺省值


参数定义的语法 : 数据类型  参数名

参数的作用 :将一个数据传入到方法体里面使用

参数的作用域:该方法的方法体


重载:同一个类中方法名相同而参数不同的方法:1.参数个数不同 2.参数个数相同 但是至少有一个对应的参数的数据类型不同


构造器的执行过程:

1.根据类 创建一个对象

2.给构造器的参数传参

3.执行构造器的方法体:属性初始化

4.返回该对象


以下为测试时用的狗对象:

package _3m1day;


public class Dog {
public Dog(){

}
public String name;
public char sex;
public String color;
public String breed;


public void bark() {
System.out.println("狗叫");
}


public void eatBone() {
System.out.println("吃骨头");
}


public void wagTail() {
System.out.println("摇尾巴");


}


public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "萝莉";
dog.sex = '公';
dog.breed = "土狗";
dog.color = "土黄色";
dog.bark();
dog.eatBone();
dog.wagTail();
}
}

以下的类 使用了方法的重载 构造器 和参数的传参

package _3m1day;


public class SumPar {
private void test1() {
// TODO Auto-generated method stub
          System.out.println("fgjkfdfj");
}
private void test2(int i) {
// TODO Auto-generated method stub
       System.out.println(i);
}
private void test3(int i,String s) {
// TODO Auto-generated method stub
       System.out.println(i+s);
}

private void test4(String[] ss) {
// TODO Auto-generated method stub
for (int i = 0; i < ss.length; i++) {
System.out.println(ss[i]);
}


}
private void test5(Dog dog) {
// TODO Auto-generated method stub
         System.out.println(dog.name+" "+dog.sex+" "+dog.color+" "+dog.breed);
         dog.bark();
          dog.eatBone();
          dog.wagTail();
}
     private void test6(Dog[] dog) {
// TODO Auto-generated method stub
    for (int i = 0; i < dog.length; i++) {
Dog d=dog[i];
System.out.println(d.name+" "+d.sex+" "+d.color+" "+d.breed);
d.bark();
d.eatBone();
d.wagTail();
}


}
public static void main(String[] args) {
SumPar s = new SumPar();
s.test1();
s.test2(245);
s.test3(12, "dfgfdsdfdsa");
s.test4(new String[]{"ssdsd","sdddf","ertrewrtr"});
Dog dog = new Dog();
dog.name="jmy";
dog.breed="哈士奇";
dog.color="yellow";
dog.sex='公';


s.test5(dog);


Dog dog1 = new Dog();
dog1.name="jmy1";

dog1.breed="哈士奇1";
dog1.color="yellow1";
dog1.sex='公';
Dog dog2 = new Dog();
dog2.name="jmy1";
dog2.breed="哈士奇1";
dog2.color="yellow1";
dog2.sex='公';
Dog[] dogs ={dog1,dog2,dog};


s.test6(dogs);


}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轩渃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值