今天学习了面向对象的编程思想,首先 要来说一下 类的定义:
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);
}
}