Java基础之this , super关键字以及构造方法相关知识点

1附上Demo1,注释里包含知识点(侧重于对缺省构造方法的理解):

package com.dong.four;

public class Point {

private int x;

private int y;

/*如果自己重新写了个构造方法,此时编译器不会再自动为你加上缺省构造方法(也叫默认构造方法)
 *所以如果想使用默认无参的构造方法,就需要重新定义一个无参数的构造方法
 * return 关键字可以终止方法的执行,同时也能够返回方法所产生的值,但是在构造方法中
 * 是不需要进行加上return 返回值 和 方法返回值类型的 ,因为构造方法肯定是返回当前这个类的对象,
 * 如果非要加上return 那么只写 return也可以,并且也不会报错
 * 
 * 编译器识别没有构造方法时,会自动创建一个隐式的构造方法
 */
public Point(int x,int y){
	//super 还有这个关键字,这个都是在构造方法的第一行的,也就意味着它执行
	this.x = x;//此时如果不加this关键字 写成 x = x 此时编译器都会识别最近的位置的一个x,而不会按照你所想的那样去获得
	this.y = y;
}
//重新写一个无参的构造方法
public Point(){
	
}
public int getDistance(Point p1){
	int sum = (this.x-p1.x)*(this.y-p1.y);
	
	return sum; 
}

public static void main(String[] args) {
	//此时创建两个对象,便于其中的一个方法调用计算方法进行计算出值
	Point aa = new Point(1,2);
	Point bb = new Point(0,1);
	System.out.println(aa.getDistance(bb));//最终输出的结果为1
}
}

2附上Demo2,除了构造方法知识点之外又包含了常量池相关知识点(整形常量池,字符串常量池)

package com.dong.four;

public class TestObject {
//	成员变量
	int age;
	String name;
    Person ps;
//  构造参数,系统会默认会创建无参的构造方法,构造方法名字要和类的名字保持一致,不需要返回值类型
//  java中的构造方法是用来初始化一个对象的,并为为实例变量赋予合适的初始值。因此构造方法不需要返回类型。
//  父类的构造方法不能被子类继承 所以用final和abstract修饰没有意义
//  不能被static、final、synchronized、abstract和native修饰;
    public TestObject(){
    	
    }
//普通方法
    public void say(){
    	
    }
	public static void main(String[] args) {
		// 面向对象测试
        TestObject t1 = new TestObject();
        t1.age=11;      //  11  其小于127(也就是整形常量池范围的最大值),可以存放在整形常量池中
        t1.name="张三";  //  "张三"  "AAAA"  这些都是字符串常量 存放在位于方法区中的字符串常量池中(适合JDK1.7以前版本)
        Person ppp=new Person();
        ppp.name="AAAA";
        t1.ps=ppp;//直接赋值给其一个person对象(其实就是存放Person这个对象的堆内存地址)
        //直接获取对象变量中的属性值
        System.out.println(t1.ps.name);
	}
}
//定义一个非public类
 class Person{
	 String name;
 }


  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值