java基础(5)----面向对象
- 编程思想:
简单的说一下,我们学习编程,最重要的就是要有编程思想,而编程思想无非就是面向过程和面向对象,以下谈谈我对编程思想的理解。
面向过程:
从过程入手,第一步,第二步…….借助过程与过程的配合,完成需求。
例如: 小明进入房间,需要以下几个步骤:
第一步打开房间门,第二步小明进去,第三步把房间门关上。
每一步都是一个过程,如果小王,小李等等进来呢,一直重复这几个过程,会显得程序冗余复杂。此时面向对象的出现完美解决了这种问题。
面向对象:----模拟现实世界编程。
从对象入手,把和需求相关的对象提取出来,借助对象和对象的配合,实现需求。
例如:小明进入房间:
先向小明下达开门的指令,然后向小明下达进入指令,最后向小明下达关门指令,小明就是对象,面向对象编程。
- 面向对象----Object Oriented
- 什么是对象:----万物皆对象。
现实生活中的对象都具有两个主要要素,一个是对象有什么,一个是对象干什么
对应程序中的属性和方法。
- 计算机中的对象:----是一块存储空间,是现实对象在计算机中的抽象表示。
- 类:----是具体对象的共性提取,对象是类的具体存在。
- 类的组成。
- 属性:
- 数据类型 变量名;//声明----string name;
- 数据类型 变量名 = 值;//声明并赋初值----string name="zhangsan"
- 方法:----修饰符 返回值类型 方法名(形参列表){//声明部分
//实现部分
}
- 构造方法:----特殊的方法。
- 方法名必须和类名完全一致;
- 没有返回值类型。
使用:
构造方法不允许手动调用,每次创建对象时由解释器自动调用
构造方法的作用是给属性赋值
如果类中没有定义构造方法,系统会默认分配一个公共无参的构造方法。
类的式例代码:
|
package com.lvsling.test; public class Student { //属性 String name;//声明属性 int age=10;//声明属性并赋值 boolean sex; //无参构造方法 public Student() { } //有参构造函数 public Student(String name, int age, boolean sex) { super(); this.name = name; this.age = age; this.sex = sex; } //普通方法 public void Test1(){ System.out.println("这是普通方法"); } } |
- 创建对象
- 语法:类名 变量名 =new 类名(构造参数);
- 使用:对象名.属性名 = 新值;//修改对象的属性值
对象名.属性名 //获取对象的属性值
对象名.方法名(实参列表);//调用对象的方法。
|
package com.lvsling.test; public class TestOO { public static void main(String[] args) { //创建对象 Student s=new Student("zhangsan",18,true); //修改对象的属性值 s.age=25; //获取对象的属性值 System.out.println(s.age); //调用对象的方法 s.Test1(); } } |
- 创建对象的过程
- 分配空间--------给所有属性赋值默认值
- 初始化属性---------给属性赋初值
- 调用构造方法-------给属性进行第三次赋值
- 总结:
以上说明了面向对象中的类的书写,创建对象以及调用方法的过程。面向对象是java学习的核心思想,面向对象编程是模拟现实生活进行编程的思想,对象共性提取抽象化,面向对象高内聚,弱耦合大大提高了程序代码的可重用性和可扩展性。
提升与拓展:
类的属性是实例变量,也叫全局变量:
- 位置:类以内,方法以外(方法内的是局部变量)
- 默认值:有默认值,string---null,int----0,Boolean----false等
- 作用域:至少本类可以用
- 命名冲突:实例变量和局部变量可以重名,重合范围内局部变量优先。
方法重载----OverLord:在同一个类中,可以定义多个名称相同,参数不同的方法
要求:形参列表不同----顺序,类型,个数。对返回值无要求
好处:屏蔽因参数列表不同带来的差异,方法调用简单,灵活。
java基础(5)----面向对象的更多相关文章
- Java基础-初识面向对象编程(Object-Oriented-Programming)
Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...
- 黑马程序员——【Java基础】——面向对象(二)异常机制、包(Package)
---------- android培训.java培训.期待与您交流! ---------- 一.异常机制 (一)异常概述 1.异常:就是程序在运行时出现不正常情况. 2.异常类:程序在运行时,出现的 ...
- Java基础之面向对象以及其他概念
一.基础知识:1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java语言是跨平台,jvm不是跨平台的. JR ...
- 【Java基础】面向对象下
面向对象下 这一章主要涉及其他关键字,包括 this.super.static.final.abstract.interface.package.import 等. static 在 Java 类中, ...
- 【java基础】面向对象的三大基本特征之-------继承
面向对象的三大特征:封装,继承,多态 java通过extends关键字来实现继承,而且是单继承,一个子类只可以有一个直接父类,但是父类还可以有父类... java.long.Object是所有类的父类 ...
- 黑马程序员——【Java基础】——面向对象(一)概述、类与对象、继承、抽象类、接口、多态、内部类
---------- android培训.java培训.期待与您交流! ---------- 一.面向对象概述 1.面向对象:是一个很抽象的概念,它相对面向过程而言,是一种程序设计的思想. 2.面向对 ...
- 再探java基础——对面向对象的理解(1)
对象 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则.计划或事件.对象具有属性和行为,在程序设计中对象实现了数据和操作的结合,使数 ...
- Java基础(6)- 面向对象解析
java面向对象 对象 知识点 java 的方法参数是按值调用,是参数的一份拷贝 封装 使用private将 属性值/方法 隐藏,外部只能调用 get,set方法/非private 的接口 获取 重载 ...
- Java基础总结--面向对象1
---面向对象的概念---1.面向过程与面向对象的区别面向过程:是一种思维习惯,解决一个问题的时候靠的是一个个方法调用--核心是动作面向对象:是一种更接近生活中解决问题的思维习惯,解决特定的问题靠对象 ...
- Java基础知识➣面向对象(八)
概述 Java和C#都是面向对象语言,面向对象编程是目前高级语言习惯的编程模式,与C++编写过程编程而言,面向对象使用起来高效.灵活:面向对象的三个特征:封装.继承和多态. Java面向对象 1.类封 ...
随机推荐
- 字符串压缩 stringZip
1,题目描述 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串.压缩规则:1. 仅压缩连续重复出现的字符.比如字符串 ...
- freemarker.core.ParseException:Unexpected end of file reached
1.错误原因 freemarker.core.ParseException:Unexpected end of file reached 2.错误原因 由于在宏定义中,运用组件时没有关闭标签,导致出错 ...
- 芝麻HTTP: 1.9.3-Scrapyd-Client的安装
在将Scrapy代码部署到远程Scrapyd的时候,第一步就是要将代码打包为EGG文件,其次需要将EGG文件上传到远程主机.这个过程如果用程序来实现,也是完全可以的,但是我们并不需要做这些工作,因为S ...
- oracle 常用知识积累
一. 基本操作 1. 表操作 1.1 复制建表 create table test as select * from dept; --从已知表复制数据和结构 create table test a ...
- C#中string类型是值类型还是引用类型?
.Net框架程序设计(修订版)中有这样一段描述:String类型直接继承自Object,这使得它成为一个引用类型,也就是说线程上的堆栈上不会驻留有任何字符串. string类型(引用类型) 名称 CT ...
- js弹窗登录效果(源码)--web前端
1.JS弹窗登录效果 <!DOCTYPE html><html lang="en"><head> <meta charset=" ...
- java线程安全问题以及使用synchronized解决线程安全问题的几种方式
一.线程安全问题 1.产生原因 我们使用java多线程的时候,最让我们头疼的莫过于多线程引起的线程安全问题,那么线程安全问题到底是如何产生的呢?究其本质,是因为多条线程操作同一数据的过程中,破坏了数据 ...
- 【BZOJ4556】字符串(后缀数组,主席树)
[BZOJ4556]字符串(后缀数组,主席树) 题面 BZOJ 题解 注意看题: 要求的是\([a,b]\)的子串和[c,d]的\(lcp\)的最大值 先来一下暴力吧 求出\(SA\)之后 暴力枚举\ ...
- 【USACO4.2】草地排水Drainage Ditches(最大流)
题目背景 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没 ...
- Micropython TurnipBit 电子时钟 青少年编程入门
电子时钟是一个很常用但是制作非常简单的小玩具了,对于Micropython初学者来说,制作一个电子时钟是非常简单又容易检验自己学习成果的实验了.TurnipBit相比于其他开发板,制作电子时钟就更加简 ...