Java面向对象

面向对象的三大特点:

封装:

封装是面向对象编程的核心思想。将对象的属性和行为封装起来,其载体是类,类通常可以对用户隐藏实现功能。采用封装思想可以保证类内部数据结构的完整性,提高了程序的可维护性。

继承:

在某两个类中,可能大部门的性质,内容都差不多,但是会有少量不同的地方,这样我们就可以去把父类(需要继承的类)拿到另一个类中(子类)使用。

  例如:平行四边形,正方形,矩形都是四边形,这时我们完全可以重复利用平行四边形
  的属性和行为,让平行四边形作为父类,同时添加正方形,矩形独有的属性和行为即可。

多态:

其实将父类应用于子类的特征就是多态。

代码理解:

package tql;


public class bb {
	//成员属性
	String name;//猫名
	int age;//猫年龄
	String special;//品种
	
	
	//成员方法:
	//带参方法
	public void cat(String name,int age,String special)
	{
		
		this.name=name;
		this.age=age;
		this.special=special;
		
	}
	//无参方法
	public void run() {
		System.out.println("小猫快跑!!");
	}
	
	public bb(String name,int age,String special)
	{
		System.out.println("小猫的名字叫"+name);
		System.out.println("小猫的年龄为"+age);
		System.out.println("小猫的品种为"+special);
	}//构造方法
	
	public static void main(String[] args) {
		bb CAT=new bb("花花",14,"蓝蓝");
		CAT.cat("花花",14, "蓝猫");
		CAT.run();
		
	}

}


运行结果:
在这里插入图片描述

类的定义:类就是同一类事物的统称,例如鸟类,狗类,而一只鸟,一只狗就不能称作类。
   类就好比是一个模板,就比如我们造人民币,就有专门的模板工具,当我们需要钱的时
   候直接拿模板就可以快速造出很多钱了

public void run() {
输入填写的内容;
}

这就是一个类,而
public static void main(String[] args) {
}这个也是一个类,不过他是一个入口类。

对象:

对象是事物存在的实体,如人类,书桌,计算机等物品一样。
(闲聊:在计算机领域有一个词语万物皆对象是非常强大的词。)
当我们有了造硬币的模板之后,我们通过模板造出来的钱就是对象啦。

==bb CAT=new bb(“花花”,14,“蓝蓝”);==即是一个创建对象的模板,
后面成员方法中会讲解带参数的情况。
通常的模板为:类名 创建类名对象=new(创建对象操作符) 构造方法的参数(); 如 Test test=new Test();

成员

成员就是所谓的家庭的一份子,在计算机里也就是类中的变量,
在家庭这个环境下,我们有爸爸,妈妈,儿子,爷爷,奶奶。。。
这些人都是属于家庭的一个成员

在这里插入图片描述
上述代码中箭头所指向的即是成员

对象实例化:

在这里插入图片描述

成员方法

成员方法就是在类中的一种行为,就比如人类可以唱,跳,跑,这些动作都是属于行为。

成员方法分为4种情况,1.构造方法,2.无参方法,3.有参方法

1.构造方法:
代参构造方法就是在创建对象的时候,自动调用该方法。
无需使用.(点操作符)来实现。
模板:
权限修饰符(public+类名(切记无返回值)+(){
		输入内容;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191004235519262.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MzUzODIz,size_16,color_FFFFFF,t_70)

在这里插入图片描述
如图,当我们创建一个a对象之后,就直接能够看见构造方法就自动调用了。

2.无参方法:
package tql;


public class bb {
	
	
public void t()
{
	System.out.println("我是无参方法!");
	}
	
	public static void main(String[] args) {
		
		bb a=new bb();
		a.t();
	}

}
无参方法模板: 权限修饰符(public)+返回类型+类名+(){
	输入内容;
 }


调用方法时:对象名.方法名();
3.有参方法:
//带参方法
	public void cat(String name,int age,String special)
	{
		
		this.name=name;
		this.age=age;
		this.special=special;
		
	}
有参方法模板: 权限修饰符(public)+返回类型+类名+(参数){
	输入内容;
 }
 
  调用方法时:对象名.方法名();

这里要注意的是this,

this关键字用法:
this在类中表示当前对象,可以通过this关键字完成当前对象的
成员属性,方法和构造方法调用。
```
何时使用this

this在调用成员属性,可以解决成员属性和局部变量名字冲突,在这里插入图片描述

this调用成员属性

this.name=name;
this.age=age;
this.special=special;
这里你可以看到有两个name,等成员,以第一行为例,右边的name表示你要传入的参数,而this.name,则表示该类中的name成员,如果,没有this关键字直接name=name的话,你会看见的结果为null。这是因为,java中会使用就近原则,就会把参数name赋值给参数name,毫无意义,并没有赋值给成员name。

本段代码也可以不用this这个关键字,可以将代码改为:
public void cat(String Name,int Age,String Special)
	{
		
		name=Name;
		age=Age;
		special=Special;
		
	}
this调用成员方法
package tql;


public class bb {
	
	
public void t()
{
	System.out.println("我是代参构造方法!嘿嘿");
	}
public void q()
{
	this.t();
	System.out.println("这面内容q方法调用t方法所产生的结果");
	}
	
	public static void main(String[] args) {
		
		bb a=new bb();
		a.q();
	}

}

在这里插入图片描述

this调用重载的构造方法:

当我们要在重载的构造方法调用,重载之前的构造方法时,我们可以通过this();
来调用构造方法,但this()方法必须放在方法体内的第一行,否则会报错;

package tql;


public class bb {
	String name;
	public bb()
	{
		System.out.println("我是无参构造");
	}
	public bb(String name)
	{
		this();
		this.name=name;
		System.out.println("我是单参构造");
		System.out.println(this.name);
	}
	public static void main(String[]argv)
	{
		bb a=new bb("注意this()一定要放在前面,放在后面会报错");
		
	}


在这里插入图片描述

好啦,对于面向技术就说到这里吧!
对于面向对象有些知识点并没有介绍到,仅供参考
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

William_Tao(攻城狮)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值