day06_02包 this 封装继承

来源:互联网 发布:vb与台达plc通讯 编辑:程序博客网 时间:2024/06/16 12:57

package:包

Package的命名规则:

Ø包名在程序的首行定义
Ø包名一般使用小写字母
Ø包名一般以公司域名反写开始
Ø一般在项目中,按照模块来进行划分包,还有一些特殊作用的包,比如:工具包(util)

import的两种机制:

       单类型导入:例如:java.util.Date;

      按需类型导入:例如:java.util.*;

注意:

       1importpackage语句之后,在class之前

       2、按需类型导入,不是导入所有的类,而是按照需要导入的类进行定位查找,找到之后导入进来,   

             编译效率比单一导入低,不影响运行效率


this

在每个类的内部,都有一个隐含的成员变量,该类的类型就是该类的类型,该成员变量的名称是thisthis是一个引用,指向自身的对象。

this的用法:

         1this调用本类中的属性,也就是类中的成员变量

         2this调用本类中的其他方法

         3this调用本类中的其他构造方法,调用时要放在构造方法的首行


封装:

是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节

  含义:隐藏对象内部的复杂性,只对外公开简单的接口,便于外界使用,从而提高系统的扩展性、可维护性


使用访问权限修饰符,实现封装

Java用于限定其他对象对该类内部定义的访问权限

publicprotecteddefaultprivate(不写)四




例子:

public class Person {

private String name;

private intage;

public String getName(){

  returnname;

}

public void setName(Stringname) {

  this.name= name;

}

public intgetAge() {

  returnage;

}

public void setAge(intage) {

  if(age> 200){

             thrownewRuntimeException("老妖怪....");

  }

  this.age= age;

}

}

继承(extends

继承:是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力


 继承是对某一批类的抽象,从而实现对现实世界更好的建模

提高代码的复用性


子类继承父类的语法格式如下:

修饰符 class subclass extends superclass {…..}


Java继承:

       1Java只支持单继承,也就是只能继承一个类

       2、如果一个类没有声明继承关系,默认继承Object

       3、子类继承父类全部的操作(除了构造方法),如果父类中的属性是private的,属于隐式继承,不能直接操作,可以通过setget方法进行操作


例子:

/**
 * 继承
 */

package com.feature;


public class Demo1 {


public static void main(String[] args) {
// TODO Auto-generated method stub
   Gun g=new Gun();

//System.out.println(g.getName());
Rifle r=new Rifle();
r.setName("AK-47");
r.setColor("black and yellow");
r.setSize(1000);
System.out.println("枪名:"+r.getName()+" "+"颜色"+r.getColor()+" "+"射程"+r.getSize());
Sniper s=new Sniper();
s.setName("L115A3");
s.setColor("black");
s.setSize(2475.0);
System.out.println("枪名:"+s.getName()+" "+"颜色"+s.getColor()+" "+"射程"+s.getSize());



}


}
class Gun
{
private String name;
public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public double getSize() {
return size;
}


public void setSize(double size) {
this.size = size;
}


public String getColor() {
return color;
}


public void setColor(String color) {
this.color = color;
}


private double size;
private String color;

private void power() {
System.out.println("威力惊人");
}
}


class Rifle extends Gun
{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSize() {
return size;
}
public void setSize(double size) {
this.size = size;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
private double size;
private String color;


}
class Sniper extends Gun
{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSize() {
return size;
}
public void setSize(double size) {
this.size = size;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
private double size;
private String color;
}



原创粉丝点击