Java基础知识——08

目录

一、面向对象

二、局部变量与成员变量

​编辑

三、方法重载

 四、构造方法

五、this关键字

1.this调属性和方法

2.this调构造方法


一、面向对象

对象:在Java程序中,一切皆为对象,从main出发依次执行,先有对象才能依次执行

类:一类事务的抽象描述,比如水果类、动物类、学生类以及老师类

对象的特征:属性

对象的行为:方法

共性的抽取:特征与行为是属于对象的,但其他的对象也有;所以在我们设计程序时,可以把共性的特征与行为抽取到类中,表示类的特征与行为,比如说动物都可以吃,学生类要学习,老师类要上课

步骤:实例化对象、调用属性、打印属性、对象调方法以及实例化多个对象

class Personman{
	String name;//成员变量
	public Personman() {//调用无参构造的实现
		System.out.println("调用无参构造实现");
	}
	public void zhoncha() {
		System.out.println(name+"正在种茶");
	}
}
	

public class canshu {
	public static void main(String[] args) {
		Personman person = new Personman();//实例化一个对象
		//无参构造调用
		person.name = "小米";//给对象的属性赋值
		person.zhoncha();//对象调方法
		
	}
}
class Student{
	String name;
	//共性的抽取
	public void play() {
		System.out.println(name+"看电视剧");
	}
}

public class test1 {
	public static void main(String[] args) {
		//实例化多个对象
		Student yjj= new Student();
		yjj.name = "吴彦祖";
		yjj.play();
		Student yjw= new Student();
		yjw.name = "梁朝伟";
		yjw.play();
		
	}
}

二、局部变量与成员变量

区别:

出现位置:局部变量出现在方法体中,成员变量出现在类中

存储位置:局部变量在栈区,成员变量在堆区

作用域:成员变量作用在整个域中,局部变量出了方法体就失效

默认值:局部变量没有默认值,必须先赋值才能使用,成员变量在整个类中都可以使用

重叠冲突情况:局部变量会覆盖成员变量,作用域小的会覆盖作用域大的

案例:

class Person{
	String name;
	public void eat() {
		String name = "小米";
		System.out.println(name+"在吃饭");//重叠冲突是,小的作用域会覆盖大的作用域
	}
}

public class test2 {
	public static void main(String[] args) {
		Person yjj = new Person();
		yjj.name = "吴彦祖";
		yjj.eat();//这里要加前缀
	}
}

三、方法重载

在一个类中,方法名相同,参数个数或类型不同,方便管理方法的调用

class People{
	public void eat() {
		System.out.println("小米在吃饭");
	}	
	public void eat(int a) {
		System.out.println("小米在吃菜");
	}	
	public void eat(String a) {
		System.out.println("小米在吃药");
	}	
}

public class test3 {
	public static void main(String[] args) {
		People xm = new People();
		xm.eat();
		xm.eat(999);
		xm.eat("888");
	}
}

 四、构造方法

组成:方法调用与方法实现构成

分类:有参构造和无参构造

实例化的过程:开辟空间、给属性赋初始值、调构造方法实现以及将空间赋给引用变量

class Superman{
	String name;
	public Superman() {}//这是无参构造实现
	//带参构造属于是无参构造加上赋值
	public Superman(String n){//带参构造实现
		name = n;
	}
	public void drink() {
		System.out.println(name+"在喝酒");
	}
	
}

public class you_test {
	public static void main(String[] args) {
		Superman te = new Superman("小明");
		te.drink();
		//系统不会生成无参构造
		Superman te2 = new Superman();
	}
}

五、this关键字

this表示当前对象,this在那个方法,this就代表谁

this可以调属性、调方法以及调构造方法

1.this调属性和方法

class Woman{
	String name;
	int age;
	public Woman(String name,int age) {//这一步要记清楚
		this.name = name;//this,调属性,调的是成员属性
		this.age = age;
		this.paoBu();//this,调方法,调的是成员方法
	}
	
	public void paoBu() {
		System.out.println(age+"岁的"+name+"在跑步");//这一步也要记清楚
	}
}

public class this_1 {
	public static void main(String[] args) {
		Woman xm = new Woman("小米",30);
		xm.paoBu();
	}
}

2.this调构造方法

这种情形下可以有带参与无参的情况

this调构造方法的条件:1.放到构造方法中 2.必须放首句

class Spiderman{
	String name;
	int age;
	public Spiderman() {
		System.out.println("调无参构造...");//调无参构造时必须要将name赋值,不然就会出现的结果为null
	}
	public Spiderman(String name) {
		this.name=name;
	}	
	public Spiderman(String name,int age) {
			this(name);//this调有参构造
			//this();//this调无参构造
			this.age = age;
	}
	public	void fei() {
		System.out.println(age+"岁的"+name+"在飞檐走壁");
	}
}

public class this_3 {
	public static void main(String[] args) {
		Spiderman peter = new Spiderman("蜘蛛侠",25);//这里是小括号()不是[],{}
		peter.fei();
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值