网站首页 > 精选教程 正文
想学习Java软件编程吗?对目前自己的工作不满意,想转行进入软件行业吗?对编程有兴趣但自学困难无从下手吗?关注熊猫编程,带您零基础学习java开发知识,进入软件行业。
【导言】今天继续介绍java编程语言的基础知识。
封装,继承,多态,面对对象编程语言的三大特性。
封装的概念在前面其实已经讲过,用java语言来表示就是一切代码都是要写到类中,包装成类。类里面包装了成员变量及方法。通过不同的修饰符来实现不同的包访问权限。一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护。
访问修饰符private,protected,public
看下面的例子,写一个类A,然后在同目录下再建一个类B
class A{
private int a;
public int a1;
private void printA(){
println("这是A");
}
public void printA2(){
println("这也是A");
}
}
class B{
public static void main(String[] args){
A a =new A();
a.printA();
a.printA2();
}
}
编译B的时候编译器会包错,提示不能访问a.printA2();方法。
这里可以看到printA和printA2修饰符关键字不一样,一个是private 一个是public
private,表示私有的,用来修饰方法时,表示该方法只能在这个类的内部调用。
public,表示公开的,用来修改方法时,表示该方法是公开的,可以在任何地方调用的。
同理,private 用来修饰成员变量时,只能在该类内部访问。用public 修改成员变量该类可以任何地方使用。
private修饰类时,表明该类只能在类的内部实例化,在类的外面不能调用实例化方法,public 则表示可在任何地方实例化。
protected表示保护的,保护的范围是同一个包内部访问及其子类
如果类,成员变量,方法都不带任何修饰 则说明它是friedly,表示方法,类都可以在同一个包内访问。
继承
继承是java做为面对对象语言的重要特性,指可以让某个类型的对象获得另一个类型的对象的属性和方法。用extends来表示。看下面的例子
class Person{
private String name;
private String sex;
private Date birth;
public void walk(){
System.out.println("走路");
}
}
class Student extends Person{
private int stuId;//学生编号
public Student(int id){
stuId=id;
}
public void printId(){
System.out.println("学生编号为:".concat(String.valueOf(stuId)));
}
public static void main(String[] arge){
Student stu = new Student ();
stu.walk();
stu.printId();
}
}
Student用extends关键字表明是继承了Person类,表明Student类的实例化对象有了Person类的所有属性和方法。
注意:java只允许继承单继承。
接口
java只允许单继承,但是可以实现多个接口。那什么是接口呢,接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则描述了类要实现的方法。只定义了方法体的参数,返回值,并不包括方法本身,而是要实现它的类去实现。如果一个类实现了一个接口,那么必须要实现此接口的方法。
举个例子
interface Fly{
public void fly();
}
class Plane implements Fly{
public void fly(){
System.out.println("飞机在飞");
}
public static void main(String[] args){
Plane plane = new Plane();
plane.fly();
}
}
Plane实现了Fly接口,然后在方法中实现了Fly接口中的fly()方法。
接口与类的区别:接口是类的抽象,定义了一系列的功能,但没有具体实现,需要实现类来完成。
类直接定义了一组属性和方法可以直接使用,也可以被子类继承。
接口是可以实现多个的
重载和重写
重载和重写是java多态的表现形式。
什么是重载?它是指一个类有几个具有相同名称的方法,但参数都不一样。例如:
class Person{
public void printA(int a){
}
public String printA(){
}
public void printA(String temp){
}
}
Person有天个printA的重载方法,但每个方法的参数和返回值都不同。
注意,重载的方法如果参数相同,仅仅只有返回值不同,是无效的。必须是参数不相同。
重写是子类继承父类后,声明了一个和父类的方法完全一样的方法。这样子类在调用此方法时并不是调用父类的方法而是调用子类自己的。
class Person{
private String name;
private String sex;
private Date birth;
public void walk(){
System.out.println("走路");
}
}
class Student extends Person{
public void walk(){
System.out.println("一个学生在走路");
}
public static void main(String[] arge){
Student stu = new Student ();
stu.walk();
stu.printId();
}
}
此方法调用的结果是打印“一个学生在走路”说明子类重写了父类的方法。
知识点总结:
1.理解private,protected,public分别作用类,属性和方法时的区别
2.理解继承的概念
3.理解接口的概念
4.掌握重载和重写的方法
课后作业:
1.设计一个类,比如说门这个类,要有基本属性,比如说材质,等级,是否带天钩地钩。
要有一个开关门的方法。
2.设计一个子类电子门,继承刚才的门这个类,然后重写开关门方法
3.设计一个接口,作用是报警,让这个电子门这个类实现接口。
【原创作品】
----------------------
在练习的过程中,如果遇到任何问题,可以加QQ群610869029来寻求帮助。
欢迎关注,致力于推广Java编程技术,让更多人学习编程知识。
猜你喜欢
- 2024-11-05 Java基础语法二 java基础语法教程
- 2024-11-05 java8流式语法掌握这6点,程序员基本业务代码就可以玩转了
- 2024-11-05 Shell基本语法 shell常用命令及示例
- 2024-11-05 Android开发-java基本语法第二讲 java开发安卓app的流程
- 2024-11-05 Java基本语法——流程控制 java中流程控制语句
- 2024-11-05 Java语法入门006 java语法一览表
- 2024-11-05 Java基础语法&数组 java数组菜鸟教程
- 2024-11-05 Java编程基础阶段笔记 day03 Java基本语法(中)
- 2024-11-05 八、Java基本语法元素-变量与常量
- 2024-11-05 给Java初学者福利——Java语法基础
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)