java基础-小白入门(面向对象 中)

本文介绍了Java面向对象的三大特点:封装、继承和多态。封装是将类的属性和方法隐藏,通过公共方法访问;继承包括类的继承和接口的继承,子类可继承父类属性和方法;多态基于继承,有向上转型和向下转型,利于程序维护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向对象的三大特点
封装、继承、多态

1.封装

何为封装?封装即为将类的属性和方法隐藏起来,不对外界展示内部结构,只提供公共的方法对其进行访问。
为了保证对象属性和行为的安全,保证类内部数据结构的完整性,用户只能通过公共的方法对对象的属性进行更改。需要进行封装的属性和方法必须用private修饰。

package encapsulate;

public class Class {
	private String name;
	private int age;
	private String sex;
	private String id;
	//设置get、set方法
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	//私有方法,在其他类中无法被调用
	private void sing() {
		System.out.println("hello world!");
	}

}

private是权限修饰符,被private修饰的属性和方法只能被本类访问,而无法被其他类访问。若想改变private修饰的属性的值,只能通过get、set方法来改变和访问。因此避免了信息的泄露、避免了他人非法修改属性的值。

package encapsulate;

public class Class1 {
	public static void main(String[] args) {
		Class cl=new Class();
		cl.setSex("Bin");
		System.out.println(cl.getSex());
	}
	

}

2.继承

2.1类的继承

java继承的基本思想是基于某个类,对其进行扩展,制定出一个新的类。原来的类成为父类或基类,扩展出来的新类称为子类。子类可以继承父类所有的属性和方法,也可以直接重写父类中的某些方法。
**注意:一个子类只能继承一个父类,但是一个父类可以有多个子类,但是接口允许多继承(注意接口和类的区别)

package 继承;

public class Student extends Humen {
	public static void main(String[] args) {
		Student stu=new Student();
		stu.age=20;
		stu.sex="男";
		stu.eat();
		stu.sleep();
	}
	public Student() {
		System.out.println("我是子类的构造方法");
	}

}

 class Humen{
	private boolean life;
	
	public  String sex;
	public  int age;
	
	public void eat() {
		System.out.println("我正在吃饭");
	}
	public void sleep() {
		System.out.println("我正在睡觉");
	}
	private void live() {
		System.out.println("我是活的");
	}
	public Humen() {
		System.out.println("我是父类的构造函数");
	}
	
	
	
}

上面的一段程序有一个关键字extends,表示继承。同时子类程序中没有声明任何属性和方法,但是子类对象却可以调用父类的所有属性和方法。(继承)
读者可以先来想一下输出结果是什么,接下来是输出结果:
输出结果
程序流程:1.子类创建一个对象,调用子类构造函数,子类构造函数第一行隐式调用父类构造函数,然后执行子类构造函数中的语句。
2.子类对象调用从父类继承来的属性和方法。

2.2接口的继承

接口是一种特殊的抽象类,接口是不同类或者不同对象相同方法的集合,其属性均为常量,方法均为抽象方法(不可创建对象的原因)。话不多说,直接上代码:

package 接口的继承及其实现;

public interface Controler {
	final String id="遥控器";    //设置其编号
	final int boundrate=115200;  //设置通信时的波特率
	public boolean up_date();     //控制器更新的方法
	public boolean ok();     //控制器确认的方法
	public int add_chinal();   //控制器增加频道
	public int reduce_chinal();   //控制器减小频道

}



package 接口的继承及其实现;

public interface Controler2 {

}

package 接口的继承及其实现;

public interface Controler3 extends Controler,Controler2 {

}

package 接口的继承及其实现;

public class Television implements Controler,Controler2{
/*
*@Override表示重写
*
*/
	@Override
	public boolean up_date() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean ok() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public int add_chinal() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int reduce_chinal() {
		// TODO Auto-generated method stub
		return 0;
	}

}

上面四个代码片段,前三个都是接口,分别是Controler 、Controler2 、Controler3 ,最后一个是实现类Television 。上面的代码中有一个新的关键词implements,表示实现。一个接口可以继承多个接口;一个类可以实现多个接口,但必须重写所实现接口中的所有抽象方法,否则编译不通过。

3.多态

多态是指某个类在不同的情况下所展现出不同的类型,有利于程序的维护。多态的基础是继承。。。。。不行,上代码吧

package 多态;

public class PolyTest {
	public static void main(String[] args) {
		//向上转型
		People pe=new Student();
	    pe.age=20;
	    pe.height=175.2;
	    pe.nation="中国";
	    pe.sex="男";
	    pe.eat();
	    pe.run();
	    pe.sleep();
	    
	    
	    //向下转型
	    Student st=(Student) pe;
	    st.id="19980902";
	    st.study();
	 
	}

}

完整的代码将在文末给各位奉上,这里只讲解上面一段代码中的多态形式:
People pe=new Student(); 创建的类型与调用的构造函数不符(必须是创建父类对象,调用子类的构造函数,即“=”右边必须是左边的子类或者左边接口的实现类) 这句话的意思是创建了一个People类实例pe,但是其引用对象为Student类型,也就是说pe实际上是一个Student类型的实例,这种创建对象的方法称为向上转型
实例化的对象在编译阶段调用变量属性时,只会调用父类与子类共同拥有的属性,不会调用子类特有的属性,在运行阶段调用的也是父类的属性;
实例化的对象在编译阶段调用方法时,只会调用父类与子类共同拥有的方法,不会调用子类特有的方法,在运行阶段调用的是子类的方法。(注意与变量的区别)
简单的记法:变量编译运行都看左边,方法编译看左,运行看右。
上面代码的第二段,通过向下转型,可以将实例化的对象转换成子类对象,这时可以调用子类特有的变量和方法,而且运行时调用的也是子类的变量和方法。
上述源码

资源下载链接为: https://pan.quark.cn/s/9648a1f24758 这个HTML文件是一个专门设计的网页,适合在告白或纪念日这样的特殊时刻送给女朋友,给她带来惊喜。它通过HTML技术,将普通文字转化为富有情感和创意的表达方式,让数字媒体也能传递深情。HTML(HyperText Markup Language)是构建网页的基础语言,通过标签描述网页结构和内容,让浏览器正确展示页面。在这个特效网页中,开发者可能使用了HTML5的新特性,比如音频、视频、Canvas画布或WebGL图形,来提升视觉效果和交互体验。 原本这个文件可能是基于ASP.NET技术构建的,其扩展名是“.aspx”。ASP.NET是微软开发的一个服务器端Web应用程序框架,支持多种编程语言(如C#或VB.NET)来编写动态网页。但为了在本地直接运行,不依赖服务器,开发者将其转换为纯静态的HTML格式,只需浏览器即可打开查看。 在使用这个HTML特效页时,建议使用Internet Explorer(IE)浏览器,因为一些老的或特定的网页特效可能只在IE上表现正常,尤其是那些依赖ActiveX控件或IE特有功能的页面。不过,由于IE逐渐被淘汰,现代网页可能不再对其进行优化,因此在其他现代浏览器上运行可能会出现问题。 压缩包内的文件“yangyisen0713-7561403-biaobai(html版本)_1598430618”是经过压缩的HTML文件,可能包含图片、CSS样式表和JavaScript脚本等资源。用户需要先解压,然后在浏览器中打开HTML文件,就能看到预设的告白或纪念日特效。 这个项目展示了HTML作为动态和互动内容载体的强大能力,也提醒我们,尽管技术在进步,但有时复古的方式(如使用IE浏览器)仍能唤起怀旧之情。在准备类似的个性化礼物时,掌握基本的HTML和网页制作技巧非常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@赤

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

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

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

打赏作者

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

抵扣说明:

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

余额充值