java 继承 this_JAVA this new() 包 封装 继承

JAVA this new() 包 封装 继承

对象与类2

java笔记

对象的值都是对内存的引用

指向一个地址

类相当远模板

this.有两个用处

1 this()指上面的构造函数

2 this.x 指自己本身函数里的x

publicclassPoint{

intx,y;

privatePoint(){

this(0,0);

//指上面的构造函数 给里面的参数赋值了0,0

}

This的使用

publicPoint(intx,inty){

this.x=x;

this.y=y;

就是这个函数里x=x(因为不能写x=x所以前面加个this.)

1.在方法及构造方法中,使用this来访问字段及方法

• 例如,方法sayHello中使用name和使用this.name是相同的。即:

voidsayHello(){

System.out.println("Hello! My name is "+name);

}

voidsayHello(){

System.out.println("Hello! My name is "+this.name);

}

的含义是相同的。

2.使用this解决局部变量与域同名的问题

使用this还可以解决局部变量(方法中的变量)或参数变量与域变 量同名的问题。如,在构造方法中,经常这样用:

Person( int age, String name ) {

this.age = age;

this.name=name;

}

这里,this.age表示域变量(一开始定义的),而age(函数里的)表示的是参数变量。

3.构造方法中,用this调用另一构造方法

• 构造方法中,还可以用this来调用另一构造方法。如:

Person(){

this(0,"");

}

• 在构造方法中调用另一构造方法,则这条调用语句必须放在第一句。

什么时候new?

是在类里new 还是在调用的main里new?

1在类里new的时候是为了开辟一个新的内存空间存数据(否则是null)

Pointp2=newPoint(6,7);

2在main函数里new 是为了新建一个对象!

Circle(intxx,intyy){

center=newPoint(xx,yy);

什么时候点点儿?.

原来的.函数(新传进去的.XX)

intrelation(Circlec){

doubledistance=center.distance(c.center);

//这里c.center指前面新传的c的圆心,而center.指的是原来就带的

booleanequals(Linex){//x是形参

// Line l1,l2,l3;

// l1.equals(l2);//实参

// l1.equals(l3);

if(x.start.equals(start)&&x.end.equals(end)){

returntrue;

}

returnfalse;

}

//这里的x.start指新传进去的Line x里的x,start指的是原来的线的x

booleanequals(Circlec2){// 判断两个圆是否相等

if(c2.center.x==center.x&&c2.center.y==center.y&&c2.radius==radius){

//c2.center.x指新传进去的c2的x, center.x指现在的x

文件夹,避免同名类不能定义的问题,类名前的包名可以进一步区分类名,

import

封装

public:函数可以跨包调用,变量不能

private:函数和变量都可以类内部调用

protected:忘了??

default:同一包里都能访问

继承

A extends B

子类------父类(超类、基类)

子类(subclass),父类或超类(superclass)

子类可以继承全部父类代码、可以在基础上梗概、增加代码

父类中同名函数:子类可以覆盖

父类中同名变量:子类可以隐藏

继承案例

publicclassB{

intx=10;

voidf(){

System.out.println("ok!");

}

}

publicclassAextendsB{//A类继承自B类

intx=20;

voidg(){

System.out.println("in subclass");

}

voidf(){

System.out.println(super.x);

System.out.println(x);

}

}

publicclassTest{

publicstaticvoidmain(String[]args){

// TODO Auto-generated method stub

A a=newA();

a.f();

System.out.println(a.x);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值