为什么使用面向对象
1.用计算机的语言描述世界;2用计算机解决现实世界的问题
面向对象设计和开发程序的好处
1.交流更加流畅;2.提高设计和开发效率
面向对象的基本步骤
面象对象设计的过程就是抽象过程,分以下三步来完成。
第一步:发现类
第二步:发现类的属性
第三步:发现类的方法
创建类和对象
宠物狗狗类public classDog {
String name="哈哈";int health = 100;int love =100;
String strain="二哈";public voidprint(){
System.out.println("宠物的自白:\n我的名字"+this.name
+",健康值是"+this.health+",和主人的亲密度是"+this.love+",我是一只"+this.strain+"。");
}
}
宠物企鹅类public classPenguin {
String name="嘿嘿";int health = 100;int love = 100;
String sex="Q仔";public voidprint(){
System.out.println("宠物的自白:\n我的名字"+this.name+",健康值是"+this.health
+",和主人的亲密度是"+this.love+",性别是"+this.sex+"。");
}
}
测试类public classTest {public static voidmain(String[] args) {
Scanner input= newScanner(System.in);
System.out.println("欢迎您来到宠物店!");
System.out.println("请输入要领养的宠物的名字:");
String name=input.next();
System.out.println("请选择要领养的的类型:(1.狗狗 2.企鹅)");int num =input.nextInt();switch(num){case 1:
System.out.println("请选择狗狗的品种:(1.二哈2.金毛)");
String strain=input.next();if(input.nextInt()==1){
strain= "二哈";
}else{
strain= "金毛";
}
Dog dog=newDog();
dog.name=name;
dog.strain=strain;
dog.print();break;case 2:
System.out.println("请选择企鹅的性别:(1.Q仔 2.Q妹)");
String sex=input.next();if(sex.equals("1")){
sex="Q仔";
}else{
sex="Q妹";
}
Penguin pgn= newPenguin();
pgn.name=name;
pgn.sex=sex;
pgn.print();break;
}
}
}
构造方法
语法: 修饰符 类名(){ }
在执行的时候,无参构造方法会自动生成,但是如果类中有了有参构造方法,则不会自动生成。推荐在写类的时候将有参和无参构造方法都写;在我们执行的时候,new对象时,对象名后面括号[ Dog dog = new Dog() ] 里面可以有的参数类型必须符合类中已声明的有参构造方法
publicDog(){
System.out.println("Dog无参构造方法....");this.name="二哈";
}public Dog(String n,int h,intlove){
System.out.println("有参构造方法....");this.name=n;this.health=h;this.love=love;
}
测试
Dog dog= newDog();
Dog dog2= new Dog("二哈",89,100);
方法重载
在同一个类里面方法名相同,参数列表(方法参数的个数或参数类型)不同,称之为 方法重载 方法重载与方法返回值和方法修饰符没有任何关系
封装
封装是面向对象三大特征之一(另外两个是继承和多态),它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的信息,而是通过该类所提供的方法来实现对内部的操作和访问。
步骤
1.将属性私有化 设为private
2.编写setter方法,针对用户输入的值进行判断
3.编写getter方法来获取值