Java 基础-类 大厦的一层的认识
来源:互联网 发布:免费淘宝兼职平台 编辑:程序博客网 时间:2024/04/29 20:59
Java 基础-类 大厦的一层的认识
一.Java 中的类
Java是面向对象的,所以他的程序是以Class为基本组成单元。
类建立的步骤包括:定义类名、属性和方法。
二.成员变量和局部变量、属性
成员变量与局部变量区别
程序中位置不同,一个是方法外,一个是方法内,这就决定了他们的作用域不同。
Java会给成员变量赋初始值,而不会给局部变量赋初始值。
属性
使用函数get/set方法,修改属性的值,约定方法。这个地方C# 已经进行了优化,添加了set和get访问器。
三.类的构造方法
Java与C#的规则相同。
自己写了有参的构造方法,系统就不会自动生成无参的构造方法。
初始化块
Java 中可以通过初始化块进行数据赋值。且执行的优先级高于构造方法。静态初始化块的优先级最高。
静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
三. 类中方法
方法的定义
方法的定义和C#等语言相同。
访问修饰符 返回值类型 方法名(参数列表){ 方法体}public static void main(String[] args) {//方法体 }
方法的重载
简单说,就是在同一个类中,函数名相同,函数的参数列表不同。
静态方法
静态方法中不能直接调用非静态方法。比如main 函数中,不能直接调用main函数外的非静态方法。
四、面向对象三大特性
封装、继承、多态。
五 封装
- 访问修饰符
和C# 大体相同,唯一不同的是,默认的访问可见性,存在包的概念。
//范围最小,对象自己可用private//对象自己,同一个包中可用(同一屋檐下)默认//对象自己,同一个包下,子类可用protect//所有public
六、继承
和C#的概念相同,但是继承的方式有变化,增加的关键字是extends。
同样和C#不同的是,子类的父类叫super,通过super调用父类的方法和属性。
重写方法的形式也不同,Java会添加一个像注释的语言-@Override.
public class HuaweiSmartPhone extends Telephone{ final String series = "Honor"; @Override public void call(int num) { // TODO Auto-generated method stub super.call(num); System.out.println(series + " IS Mine!"); }}
子类的初始化顺序
子类是从父类继承而来,故初始化顺序是:先初始化父类,再初始化子类。
子类的所有的构造函数,默认都会访问父类中空参数的构造函数。因为子类每一个构造函函数内的第一行都有一句隐式的super。当父类中没有空参数的构造函数时候,子类必须手动通过super语句形式来访问父类中指定的构造函数。
特殊的父类 –Object
所有的类都默认继承于object类。object类两个重要的方法是toString()和equals()方法,都可以方便的根据自己的需要书写。
七、多态
引用的多态、方法的多态
引用可以在子类、父类之间传递,导致运行时类型不同,同样造成调用的方法根据运行时类型,调用的方法不同。
//老父亲,假借子子孙孙之手,完成自己的目的,生活可以如此多姿多彩,儿子多就是好。----多态HuaweiSmartPhone myPhone = new HuaweiSmartPhone();//父类是个小类型,Telephone phone = myPhone;//父类的引用指向子类,反之则不行:引用的多态phone.call(8);//方法的多态,就近原则// phone = myPhone;//大类型的可以转换成小类型。// myPhone = (HuaweiSmartPhone)phone;//强制类型转换 instanceofif (phone instanceof XiaomiSmartPhone) {//校验phone运行时类型,是否可以转换成XiaoXi XiaomiSmartPhone herPhone = (XiaomiSmartPhone)phone; herPhone.call(89);//运行时类型为H}
八、抽象类
和C# 定义相同,关键字 abstract。
主要目的:不关注子类的实现,约束子类的一些特征。
不能直接创建,可以定义引用变量。
//Telephone 为抽象类,目的:不关注子类的实现,约束子类的一些特征 Telephone phone = new HuaweiSmartPhone(); //利用多态,实现个性特征,有接口的味道 phone.Show(); phone = new XiaomiSmartPhone(); phone.Show();
九、接口
接口时一种规范,定义了一批类所遵循的规范,用来约束类。
//定义public interface MyInterface extends Parent {//常量定义[public static final] String Names;//抽象方法定义 [public abstract ] void Show();}//实现一个接口的类public Class HuaweiSmartPhone extends Telephone implements ITelephone{}// 接口操作举例//接口的操作IPlayGame iPlayGame = new HuaweiSmartPhone();iPlayGame.playGame();
更快速的匿名内部类
//匿名内部类 IPlayGame iMyselfPlayGame = new IPlayGame() { @Override public void playGame() { // TODO Auto-generated method stub System.out.println("I play myself!"); } }; iMyselfPlayGame.playGame(); new IPlayGame() { @Override public void playGame() { // TODO Auto-generated method stub System.out.println("I play myself!!!"); } }.playGame();
十、租车系统项目练习分析
- 数据模型分析
现实世界的事物抽象出数据结构。
- 业务模型分析
明确该程序需要执行哪些业务。
可以同时满足工厂和消费着的需求。
- 显示和流程分析
- Java 基础-类 大厦的一层的认识
- 希格玛大厦的面试
- 百度的新大厦
- 一层简单人工神经网络的Java实现
- 数字信号处理大厦的入口
- astar 百度的新大厦
- J:百度的新大厦
- “逃离大厦”游戏的破解
- caffe大厦的砖头Blob
- 认识Java的8种基础类型
- java类的认识
- 大是大厦大厦大方方的是
- 大是大厦大厦大方方的是
- 大是大厦大厦大方方的是
- 接待发拉的是将泛利大厦将泛利大厦
- 关于ld.so , 安装gstreamer-0.10 (今天对gcc的认识又多了一层。哈哈)
- JMS的基础认识
- CGAffineTransform的基础认识
- ip数据包的发送流程
- 使用Ip/tcp协议进行文件传送
- iOS 利用autolayout自定义行高仿写朋友圈界面,OC与Swift版本
- HDU-2224-The shortest path
- 校园宽带破解---解救断网之际(二)
- Java 基础-类 大厦的一层的认识
- 怎样防止指针的越界使用问题?
- 学习python的第十三天
- python回朔算法解八皇后问题
- perl学习笔记---常用模块 (Data::Dumper)
- 选择排序及其优化
- java 异常处理 Throwable Error 和Exception
- sessionstorage本地数据库存储和ajax提交后台的数据接口
- 湖南省2016程序设计竞赛