一、对象和类

(1)类的概念
属性—对象具有的各种特征
方法—对象执行的操作
具有相同或者相似性质的对象的抽象就是类,类就是一个模型,确定对象拥有的属性和方法。
(2)对象的概念
对象是类的一个具体实例。
(3)类和对象的关系
类是对一类事物的抽象,是对象的类型
对象是实际存在的个体,是类的实例化
(4)创建类的对象
先肯定抽象出来对象的属性和方法,然后通过new关键字创建类的对象。
(5)动手案例
例1: 编写一个整数计算器,具备加、减、乘、除、求余、平方等功能

class  Calc{//计算器public   double calc(int x, int y, String s) {if (s.equals("*")) {return x * y;} else if (s.equals("/")) {return x / y;} else if (s.equals("+")) {return x + y;} else if (s.equals("-")) {return x - y;} else if (s.equals("%")) {return x % y;} else if (s.equals("+")) {return x + y;} else if (s.equals("2")) {return x*x + y*y;} else {return 0;}}
}
public class Test01 {public static void main(String[] args) {Calc c=new Calc();double result=c.calc(10,20,"*");System.out.println(result);}
}

二、封装:就是属性私有化,但是要提供公有访问私有属性的方法。

例2:
(1)具有属性:名称(title)、页数(pageNum),其中页数不能少于200页,否则输出错误信息,并赋予默认值200
(2)具有方法: detail,用来在控制台输出每本教材的名称和页数。
(3)具有带参数的构造方法:用来完成对象的初始化工作,并在构造方法中完成对页数的最小值限制
(4)编写测试类Book2Test进行测试:初始化一个Book2对象,并调用该Book2对象的detail方法,看看输出是否正确

public class Book {//属性私有private String title;private int  pageNum;//带参数的构造方法public  Book(String title, int pageNum){this.title = title;if(pageNum>=200){this.pageNum = pageNum;}else{this.pageNum = 200;System.out.println("页数不能小于200页");}}//get 和 set 方法public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public int getPageNum() {return pageNum;}public void setPageNum(int pageNum) {this.pageNum = pageNum;}//公有的方法public void detail(){System.out.println("教材的名称为:"+title+"\t"+"教材的页数为:"+pageNum);}
}

测试函数(程序入口)

public class Book2Test {public static void main(String[] args) {Book b= new Book("数学",20);b.detail();}
}

三、方法的重载

重载方法必须满足以下条件:
(1)方法名相同(2)方法的参数类型、个数、顺序至少有一个不相同(3)方法的返回类型、修饰符可以不相同
例3:
(1)具有属性:名称(title)、页数(pageNum)、种类(type)
(2)具有方法:detail,用来在控制台输出每本教材的名称、页数、种类
(3)具有两个带参构造方法:第一个构造方法中,设置教材种类为“计算机”(固定),其余属性的值由参数给定;第二个构造方法中,所有属性的值都由参数给定
(4)分别以两种方式完成对两个Book3对象的初始化工作,并分别调用它们的detail方法,看看输出是否正确

public class Book {//属性私有private String title;private int  pageNum;private  int type;//带参数的构造方法public  Book( int pageNum,int type){this.type=type;this.pageNum=pageNum;this.title="计算机";}public  Book( String title,int pageNum,int type){this.type=type;this.pageNum=pageNum;this.title=title;}//get 和 set 方法public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public int getPageNum() {return pageNum;}public void setPageNum(int pageNum) {this.pageNum = pageNum;}public int getType() {return type;}public void setType(int type) {this.type = type;}//公有的方法public void detail(){System.out.println("教材的名称为:"+title+"\t"+"教材的页数为:"+pageNum+"\t"+"教材的种类为:"+type);}
}

测试函数(程序入口)

public class Book3Test {public static void main(String[] args) {//第一种构造Book b1=new Book(20,20);b1.detail();//第二种构造Book b2= new Book("数学",20,20);b2.detail();}
}

四、继承

继承:将几个类甚至更多类,提取公共的属性和方法,定义一个父类,其他类继承父类公共的属性和方法,然后可以增加新的成员变量和方法。
方法的重写要满足以下条件:
(1)子类和父类的方法具有相同的名称、参数列表、返回值类型
(2)方法重写只存在于子类和父类(包括直接父类和间接父类)之间,在同一个类中的方法只能被重载,不能被重写
注意:
父类中的private、final修饰的方法不能被重写
子类方法不能缩小父类方法的访问权限
子类方法不能抛出比父类方法更多的异常
Super关键字
子类可以通过super关键字调用父类的构造方法
注意:super必须位于构造方法的第一句
Object为所有类的祖宗,继承只能继承一个父类

例4:
动物(Animal)具有行为:吃(eat)、睡觉(sleep)
动物包括:兔子(Rabbit),老虎(Tiger)
这些动物吃的行为各不相同(兔子吃草,老虎吃肉);但睡觉的行为是一致的。
并编写测试类AnimalTest进行测试。

父类(动物)

public class Animal {//吃public void  eat(){System.out.println("动物们吃东西");}//睡觉public void sleep(){System.out.println("动物们在睡觉");}
}

兔子类

public class Rabbit extends Animal {@Overridepublic void eat() {System.out.println("兔子吃草");}@Overridepublic void sleep() {super.sleep();}
}

老虎类

public class Tiger extends Animal {@Overridepublic void eat() {System.out.println("老虎吃肉");}@Overridepublic void sleep() {super.sleep();}
}

测试函数(程序入口)

public static void main(String[] args) {Rabbit r= new Rabbit();r.eat();r.sleep();Tiger t =new Tiger();t.eat();t.sleep();
}

五、多态

多态:一个东西具有多种形态的能力。
例如:同一台打印机,既可以打印黑白,又可以打印彩印,这就是打印机的多态。
子类重写父类的方法,子类根据实际需要,对父类的方法进行添加。创建对象时动态决定使用那个方法。
多态的表现形式
方法的重载
方法的重写

六、常量

常量是一种标识符,用final修饰,它的值在运行期间恒定不变
被final修饰的变量为常量
被final修饰的方法不能被重写
被final修饰的类不能被继承

七、抽象类

包含了抽象方法的类,称为抽象类。
抽象类里面的抽象方法没有任何方法体,子类若为普通类要实现父类的所有抽象方法。子类若为抽象类,可以重写父类的抽象方法,也不可以重写。
抽象类一般当做父类被子类继承。
抽象类可以包含抽象方法和普通方法。

八、接口

接口是一种“纯抽象类”,不提供实现,基本数据类型的数据成员,默认为public,statistic和final。
利用接口设计类的过程,称为接口的实现,使用implements关键字。
接口可以多重继承,允许一个类可以实现多个接口,通过这种机制可实现多重继承。

例 USB接口

// interface 接口
public interface USB {// 接口中的属性默认被public static final修饰static final int USB_MEMORY = 128;// 接口中的方法必须是抽象方法// 接口中的方法默认被public abstract修饰void transferData();public void saveData();public void charge();}

实现类
三星u盘

public class Samsung implements USB {@Overridepublic void transferData() {System.out.println("三星在传输数据");}@Overridepublic void saveData() {System.out.println("三星在存储数据");}@Overridepublic void charge() {System.out.println("三星在充电");}
}```
金士顿u盘```java
// Kingston 接口的实现类
public class Kingston implements USB{@Overridepublic void transferData() {System.out.println("金士顿在传输数据");}@Overridepublic void saveData() {System.out.println("金士顿存储数据");}@Overridepublic void charge() {System.out.println("金士顿在充电");}
}

u盘可以实现多个接口,但是都需要实现所有接口中的抽象方法。
例 金士顿u盘

// interface 接口
public interface USB {// 接口中的属性默认被public static final修饰static final int USB_MEMORY = 128;// 接口中的方法必须是抽象方法// 接口中的方法默认被public abstract修饰void transferData();public void saveData();public void charge();}

接口A

public interface A {public void a();
}

实现类(金士顿u盘)

//一个类可以实现多个接口,但是必须重写(实现)所有接口中的抽象方法
public class Kingston implements USB,A{@Overridepublic void transferData() {System.out.println("金士顿在传输数据");}@Overridepublic void saveData() {System.out.println("金士顿存储数据");}@Overridepublic void charge() {System.out.println("金士顿在充电");}
//接口A的实现@Overridepublic void a() {}
}

Java基础知识整理系列第三弹相关推荐

  1. 【转】Java基础知识整理

    本博文内容参考相关博客以及<Java编程思想>整理而成,如有侵权,请联系博主. 转载请注明出处:http://www.cnblogs.com/BYRans/ PDF版下载链接:<Ja ...

  2. 2022全新Java基础知识整理,阿里大牛纯手绘思维导图文档

    最近趁着年初空闲的时间,总结一下自己这么多年来使用Java的一些心得体会,主要是一些Java基础知识点相关的, 分享给刚刚入门的Java程序员和需要巩固Java基础的朋友们,希望可以给大家一些经验,能 ...

  3. java基础知识整理

    Day01 常见DOS命令和环境变量的配置 每天要做的事--笔记.作业.代码 知识点的学习--A:是什么? B:有什么特点? C:如何使用? D:什么时候使用? E:能讲给别人听么? 一.学习的前提 ...

  4. java基础知识 整理

    1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注 ...

  5. java程序中单方法接口通常是,Java基础知识整理

    面向对象和面向过程的区别 面向过程 优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采用面向过程开发,性能是最重要的因素. ...

  6. Java 基础知识整理 (待整理)

    JVM之类加载器(ClassLoader)基本介绍 类加载器用于将class文件加载到JVM中去执行.下面介绍类加载器涉及到的基本概念和加载基本过程. 一.Java虚拟机与程序的生命周期 在运行Jav ...

  7. java关键字整理_【java基础知识整理】java基础语法之关键字

    一.continue与break continue与break基本都使用与循环中,但是continue指结束所有循环的当前循环,而break是指结束整个循环.下面用代码进行简单实例. 使用contin ...

  8. java基础知识整理(精简)

    1.永远的"Hello World!" public class Hello { public static void main (String args[]){ System.o ...

  9. java基础知识整理——多态(二)

    1.必要条件: 满足继承关系 父类引用指向子类对象. 2.多态的实现: 多态可由向上转型和动态绑定机制实现. 向上转型:子类对象向上转型为父类类型. 动态绑定:在程序运行期间,JVM根据对象的类型自动 ...

最新文章

  1. 得到一个数组里面相同元素的个数
  2. 油管螺纹尺寸对照表_数控加工过程中,如何区分新旧螺纹牌号?
  3. 高二下学期计算机考试试题及答案,福建省泉州市第五高级中学校2020-2021学年高二下学期期中考试数学试题含答案.docx...
  4. DL:基于sklearn的加利福尼亚房价数据集实现GD算法
  5. 台式电脑耳机插孔在哪_不到一千元的迷你电脑究竟如何?Intel NUC7CJYH测评来了...
  6. Android 单击+双击+短按+长按 逻辑
  7. 大学的生物专业真的那么坑吗?
  8. android 查找资源,Android Studio 查找无用资源
  9. 幻想英雄2-战神再起折扣号新手入门攻略
  10. 中国农用喷雾机市场趋势报告、技术动态创新及市场预测
  11. 信息安全——密码学之DES介绍
  12. 【一天一个NLP任务】(Day 1)——BERT解决中文情绪分类任务
  13. 微信小程序踩坑(1):wx.showModal模态对话框中content换行
  14. vijos 1071 01背包
  15. hpsocket java代码_java版本调用HP-Socket服务端代码
  16. 文件同步工具GoodSync简介
  17. elasticsearch 学习之 搭建简单的elasticsearch多节点服务器
  18. 27岁研究生毕业年龄大吗?
  19. Web 字体应用指南最佳实践修炼之道(上)
  20. 22条经典心灵鸡汤集锦

热门文章

  1. Ajax学习日志(七)—— 解决低版本IE浏览器的缓存问题
  2. [GIS原理] 3 空间数据模型
  3. Win7无线共享WiFi网络(修改增加版)
  4. find(==)函数matlab,MATLAB学习笔记(1 )find函数
  5. 【转】漫画:什么是协程?
  6. 几年前的今天,Google发了这几篇“大”新闻……
  7. Unreal4第三人称操作丢失角色无法移动问题的解决
  8. 无法修改html 默认打开,默认网页无法修改
  9. linux运维笔记:Rsync数据同步工具
  10. [Unity3D]Unity3D游戏开发之塔防游戏项目讲解(上)