static:
总结:
如果对象不创建,则普通代码块不能够被执行,当然,普通方法也无法调用
如果对象不创建,静态代码块依然能够被执行,而且,静态方法可直接通过类调用
说明,普通属性、方法、代码块是 对象级别的
静态属性、方法、代码块是 类级别的
继承:
继承可以解决编程中代码的冗余的问题,是实现代码重写重用的手段之一。
格式:
【访问修饰符】class<Subclass>extends<superclass>{ }
继承通过extends关键字实现,其中SubClass称为子类,SuberClass称为父类或基类
作业:
package com.jicheng; /** * Pet.java * @author 陈 *2019.1.18 */ public class Pet { //创建一个宠物类 //定义属性设立私有: 名字 、 年龄 、 亲密度 、 健康值 private String name; private int age; private int love; private int health; //创建属性的set/get方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getLove() { return love; } public void setLove(int love) { this.love = love; } public int getHealth() { return health; } public void setHealth(int health) { //创建健康值set方法,加入判断,输入的健康值大于100或小于0,都默认为60 if(health<0||health>100) { health = 60; System.out.println("输入的值超出范围,默认健康值为60"); } this.health = health; } public void make() { //创建宠物的自白方法 System.out.println("宠物的自白"); System.out.println("我的名字叫"+this.name+",我今年"+this.age+"岁了"+",健康值是:"+this.health+",我和主人的亲密度是:"+this.love); } }
package com.jicheng; /** * Dog。java * @author 陈 *2019.1.18 */ public class Dog extends Pet { //创建一个继承Pte父类的Dog的子类 private String kind; //定义一个品种的属性,设为私有 //创建属性的set/get方法 public String getKind() { return kind; } public void setKind(String kind) { this.kind = kind; } public void make() { //重写父类的make方法 super.make(); //调用父类的make方法 System.out.println("我是一只"+this.kind); //输出自己私有属性 } }
package com.jicheng; /** * Cat.java * @author 陈 *2019.1.18 */ public class Cat extends Pet { //创建一个继承Pet父类的Cat子类 private String color; //定义一个私有的颜色属性 //创建set/get方法 public String getColor() { return color; } public void setColor(String color) { this.color = color; } public void make() { //重写父类的make方法 super.make(); //调用父类的make方法 System.out.println("我的颜色是"+this.color); //输出自己的特有属性 } }
package com.jicheng; /** * Penguin.java * @author 陈 *2019.1.18 */ public class Penguin extends Pet { //创建一个继承Pet父类的Penguin子类 //定义设立私有属性:性别 private String sex; //创建set/get方法 public String getSex() { return sex; } public void setSex(String sex) { //在set方法内写判断语句:如果输入的Q仔或者Q妹,this.sex = sex;否则默认sex = Q仔 if(sex.equals("Q仔")||sex.equals("Q妹")) { this.sex = sex; }else { System.out.println("输入的性别不对,默认为Q仔"); sex = "Q仔"; } this.sex = sex; } public void make() { //创建重写父类的make方法 super.make(); //调用父类的make方法 System.out.println("我的性别是(Q仔、Q妹):"+this.sex); //输出私有的属性 } }
package com.jicheng; /** * Test.java * 陈 * 2018.1.18 */ import java.util.Scanner; public class Test { //创建一个测试类 public static void main(String[] args) { Scanner sc = new Scanner(System.in); Dog dog = new Dog(); //创建dog对象 Cat cat = new Cat(); //创建cat对象 Penguin pen = new Penguin(); //创建pen对象 System.out.println("欢迎来到宠物店"); System.out.println("请输入你要领养的宠物类型:(1、狗狗。2、猫。3、企鹅)"); int i = sc.nextInt(); //判断输入的i if(i == 1) { //如果i等于1,则选择输入下面的属性,最后调用dog的make方法 System.out.println("您要领养狗狗的名字:"); dog.setName(sc.next()); System.out.println("请选择要领养狗狗的品种:"); dog.setKind(sc.next()); System.out.println("请输入领养狗狗的健康值:"); dog.setHealth(sc.nextInt()); dog.make(); }else if(i == 2){ //如果i等于2,则选择输入下面的属性,最后调用cat的make方法 System.out.println("您要领养猫的名字:"); cat.setName(sc.next()); System.out.println("请选择要领养猫的颜色:"); cat.setColor(sc.next()); System.out.println("请摄入领养猫的健康值:"); cat.setHealth(sc.nextInt()); cat.make(); }else { //否则i无论等于3或等于其他,则选择输入下面的属性,最后电泳pen的make方法 System.out.println("请输入领养企鹅的名字:"); pen.setName(sc.next()); System.out.println("请选择领养企鹅的性别:"); pen.setSex(sc.next()); System.out.println("请输入领养企鹅的健康值:"); pen.setHealth(sc.nextInt()); pen.make(); } } }