this关键字的理解与知识点的学习

java近期所学:

一. 编译代码出现 “已在该编译单元中定义Arrays” 错误原因是引入的包名与所建包名相同 如:

import java.util.Arrays;
public class Arrays{    //会报错,因为名字不能相同
.......
}


二.初始构造方法

Java 构造方法有以下特点:
1.构造方法名与类名相同
2.构造方法没有返回值
3.再创建一个对象时,至少要调用一个构造方法
4.构造方法不能显示的直接调用,一般函数不能调用构造函数,只有构造函数才能调用构造函数
5.构造方法的主要作用时对对象初始化
6.只能与 new 运算符结合使用

public class Triangle{

	int x,y,z;
	public Triangle(int i,int j,int k){ //声明构造方法
		x=i;
		y=j;
		z=k;
		}
	public static boolean judge(Triangle m){
		if(Math.sqrt(m.x*m.x+m.y*m.y)==Math.sqrt(m.z*m.z))
		return true;
		else
		return false;
		}

		public static void main(String[] args){
			Triangle t1=new Triangle(3,4,5)  //实例对象化t1,调用构造方法对其进行初始化
			if(judge(t1))   // 调用judge()方法,判断t1成员变量能否构成三角形

			System.out.println("这是一个三角形");

			else
		System.out.println("这不是一个三角形");

			}


	}

//如果为构造方法定义了返回值类型或使用 void 声明构造方法没有返回值,编译时不会出错,但 Java 会把这个所谓的构造方法当成普通方法来处理。

三.对this关键字的了解即相关知识点的补充

this

  • this修饰的变量为成员变量
  • 方法形参若与成员变量同名,不带this修饰的变量是形参,带this的是成员变量
  • 方法形参若与成员变量不同名,不带this修饰的变量是成员变量
 class Student{
private String name;
int old;
public  Student(){} //有构造方法时要定义一个无参构造
public  Student(int old){
this.old=old;  //this主要用来解决局部变量隐藏成员变量问题,this.old为成员变量
System.out.println(old);
}

public  Student(int age,String name)
{
       this.name=name; //this.name为成员变量,name为局部变量
       old=age;  //old为成员变量
      System.out.println(this.name+" "+old);
}

 public void show(){
System.out.println(old);
}

}

public class Demo{
public static void main(String[] args){
Student t1=new Student();
t1.old=20;  //因为name被private修饰故不能被本类外的类调用,old可以
t1.show();

Student t2=new Student(20); //调用了构造方法public void Student(int old)

Student t3=new Student(20,"zhu");//调用了构造方法public void Student(int age,String name)


}

}

补充:

  • 成员变量:类中方法外的变量,放在堆内存,有默认初始值,随对象存在而存在
  • 局部变量:方法中的变量,放在栈内存,无默认初始值,随方法调用而存在
  • private: 修饰成员变量,保护成员不被别的类调用,被private修饰的成员只能在本类访问,提高了代码的安全性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值