zoukankan      html  css  js  c++  java
  • 2019-1-18 笔记作业

    一、类的访问修饰符

      1、public修饰符:公有访问级别

        同包中可直接访问,不同包中导入类所在的包即可访问

      同包中:

      不同包中:

     

      2、默认修饰符:包级私有访问级别

       同包中:

      不同包中:

    二、类成员访问修饰符及作用域

       

      1、private:只能在同一个类中访问

      

      

      2、默认修饰符:同一类或同一个包中可以访问,同一包中的子类也可以访问

      

      

      不同包无法访问:

      

      在同一个包的子类可以访问:

      

      不同包中的子类无法访问:

      

      3、protected:在同一类或同一包中以及同一包中的子类可以访问

      

      

      同一包中的子类:

      

      

       不同包中的子类无法访问:

      

      

      

      4、public:任何地方都可以进行访问

    三、static静态修饰符

      一)、static可用来修饰

        1、成员变量:静态变量,可以直接通过类名访问

        2、成员方法:静态方法,可以直接通过类名访问

        3、代码块:静态代码,当java虚拟机加载类时,就会执行代码块

      二)、类的成员变量

        1、类变量(静态变量)

          A、被static修饰的变量

          B、在内存中只有一个拷贝

          C、类内部,可以在任何方法内直接访问静态变量

          D、其它类中,可直接通过类名访问

        2、实例变量

          A、没有被static修饰的变量

          B、每创一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响

        3、static方法

          A、静态方法:可直接通过类名访问

            a、静态方法中不能使用this和super

            b、不能直接访问所属类的实例变量和实例方法

            c、可直接访问类的静态变量和静态方法

          B、实使方法:通过实例访问

            可直接访问所属类的静态变量、静态方法、实例变量和实例方法

          C、静态方法必须被实现

      三)、代码块

        1、如果对象不创建,则普通代码块不能够被执行,当然,普通方法也无法调用;

        2、如果对象不创建,静态代码块依然能够被执行,而且,静态方法可直接通过类调用;

        3、说明,普通属性、方法、代码块是对象级别的;

          静态属性、方法、代码块是类级别的;

        PS:

          JVM加载静态代码块时,如果有多个静态代码块时,会按顺序执行,但静态代码码只会被执行一次

    四、继承

      一)、继承是代码重用的一种方式:将子类共有的属性和行为放到父类中

        1、可以使用super关键字,super代表父类

        2、在子类构造 方法中调用且必须是第一句

        3、不可以访问父类中定义为private的属性和方法

        4、super关键字来访部父类的成员

      二)、子类继承父类的什么

        1、继承public和protected修饰的属性和方法,不管子类和父类是否在同一个包里

        2、不在同一个包中,父类中被默认权限修饰符的属性和方法无法被继承

           3、父类中被private修饰的成员、以及父类构造方法无法被继承

    作业:

      1、使用继承方法实现宠物店(狗、企鹅、猫)

      宠物类:

    package com.java_1_18_lianxi;
    
    public class Pet {
    	private String name;//名字
    	private int health;//健康值
    	private int macy;//亲密度
    	
    	public String getName() {
    		return name;
    	}
    	
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	public int getHealth() {
    		return health;
    	}
    	
    	public void setHealth(int health) {
    		if(health>100||health<0) {
    			this.health = 60;
    			System.out.println("健康值在0到100之间,您的输入有误,默认60!");
    		}else {
    			this.health = health;
    		}
    	}
    	
    	public int getMacy() {
    		return macy;
    	}
    	
    	public void setMacy(int macy) {
    		if(macy>100||macy<0) {
    			this.macy = 60;
    			System.out.println("亲密度在0到100之间,您的输入有误,默认60!");
    		}else {
    			this.macy = macy;
    		}
    	}
    	
    	public void print() {
    		System.out.println("宠物的自白:");
    		System.out.println("我的名字是:"+this.name+",健康值是:"+this.health+",和主人的亲密度是:"+this.macy);
    	}
    	
    }
    

      狗类:

    package com.java_1_18_lianxi;
    
    public class Dog extends Pet{
    
    	private String strain; //品种
    	
    	public String getStrain() {
    		return strain;
    	}
    
    	public void setStrain(String strain) {
    		this.strain = strain;
    	}
    
    	public void print() {
    		super.print();
    		System.out.println("我是:"+this.strain);
    	}
    }
    

      企鹅类:

    package com.java_1_18_lianxi;
    
    public class Penguin extends Pet {
    
    	private String sex;//性别
    	
    	public String getSex() {
    		return sex;
    	}
    	public void setSex(int sex) {
    		if(sex==1) {
    			this.sex = "Q仔";
    		}else {
    			this.sex = "Q妹";
    		}	
    	}
    	
    	public void print() {
    		super.print();
    		System.out.println("我的性别是:"+this.sex);
    	}
    }
    

      猫类:

    package com.java_1_18_lianxi;
    
    public class Cat extends Pet {
    	private String colour;//颜色
    
    	public String getColour() {
    		return colour;
    	}
    
    	public void setColour(String colour) {
    		this.colour = colour;
    	}
    
    	public void print() {
    		super.print();
    		System.out.println("我的毛色是:"+this.colour+"色!");
    	}
    }
    

      主程序:

    package com.java_1_18_lianxi;
    
    import java.util.Scanner;
    
    public class Test {
    	public static void main(String[] args) {
    		Scanner cxj = new Scanner(System.in);
    		Penguin p = new Penguin();
    		Dog d = new Dog();
    		Cat c = new Cat();
    		System.out.println("欢迎来到宠物店!");
    		System.out.print("请输入要领养宠物的名字:");
    		String name = cxj.next();
    		System.out.print("请输入您要领养宠的类型(1、狗	2、企鹅	3、猫):");
    		int select = cxj.nextInt();
    		switch(select) {
    		case 1:
    			d.setName(name);
    			System.out.print("请选择狗狗的健康值:");
    			d.setHealth(cxj.nextInt());
    			System.out.print("请输入狗狗的亲密度:");
    			d.setMacy(cxj.nextInt());
    			System.out.print("请输入狗狗的品种:");
    			d.setStrain(cxj.next());
    			d.print();
    			break;
    		case 2:
    			p.setName(name);
    			System.out.print("请选择企鹅的健康值:");
    			p.setHealth(cxj.nextInt());
    			System.out.print("请输入企鹅的亲密度:");
    			p.setMacy(cxj.nextInt());
    			System.out.print("请选择企鹅的性别(1、Q仔	2、Q妹):");
    			p.setSex(cxj.nextInt());
    			p.print();
    			break;
    		case 3:
    			c.setName(name);
    			System.out.print("请选择猫猫的健康值:");
    			c.setHealth(cxj.nextInt());
    			System.out.print("请输入猫猫的亲密度:");
    			c.setMacy(cxj.nextInt());
    			System.out.print("请选择猫猫的毛色:");
    			c.setColour(cxj.next());
    			c.print();
    			break;
    		default:
    			System.out.println("您的输入有误!");	
    		}
    	}
    }
    

      结果:

  • 相关阅读:
    Jenkins修改用户密码及权限
    Selenium知识点小结
    解析图形验证码登录系统
    Pywinauto实现电脑客户端有道云签到领空间
    Python冒泡排序
    LoadRunner12常用函数
    GIT教程笔记
    LoadRunner 关联
    搭建自动化测试框架Python3+Selenium
    SSH免密从A服务器登录进B服务器,重启B服务器的tomcat
  • 原文地址:https://www.cnblogs.com/chenxj/p/10286662.html
Copyright © 2011-2022 走看看