1.类(class)的定义

类是对一组具有相同特征和行为的对象的抽象描述。

在程序中,引入类的概念,就是为了快速生成更多的具有相同特性和行为的事物。

2.对象(object)的定义

对象是类的具体实现,表示一个独立的、唯一的个体,具有属性和方法。

3.属性和方法

属性:在程序中类或者对象具有的特征,具体对象的属性拥有的数据称为属性值。

方法:类或者对象的行为。

4.定义类和对象

创建1个Student的类,类的属性有学号(sid)、姓名(name)、年龄(age)、性别(gender),类中声明了一个learn()方法。

 public class Student{

     // 声明类的属性
String sid;
String name;
int age;
char gender; // 声明方法
public void learn(String cName){
System.out.println(name+" learn "+cName);
}
}

下面代码中新建了一个stu对象,通过.语法给对象的属性赋值和方法调用。

 public class Test01{
public static void main(String[] args){
// stu是Student的一个对象,也是Student的一个实例
// new 操作就是实例化过程
Student stu = new Student();
// 给属性赋值(.语法)
stu.name = "张三";
stu.sid = "001";
// 调用方法
stu.learn("java"); Student stu2 = new Student();
stu2.name = "李四";
stu2.sid = "001";
stu2.learn("c++"); }
}

5.属性的声明

声明方式:[修饰符] 属性类型 属性名称  [=默认值]

在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。(数值:0,0.0   char:\u0000,  boolean:false,  所有引用类型:null)  。

属性的作用域范围是整个类体。

6.面向对象编程思维

OOP(Object Oriented Progarmming),即面向对象编程是Java程序员必须具备的编程思想。Java程序通过类来构造对象,并通过各个对象之间相互配合完成一个复杂的需求。

以下是运用面向对象的编程思想来实现手机播放一首歌曲的需求。

a.创建1个Music的类,定义类的属性有name、singer、times、content,方法有showInfo()。

 public class Music{
String name;
String singer;
int times;
String content; public void showInfo(){
int hour=times/3600;
int minute=times%3600/60;
int second=times%60;
System.out.println("正在播放:"+name);
System.out.println("歌手:"+singer);
System.out.println("时长:"+hour+"--"+minute+"--"+second);
System.out.println("歌词:"+content);
} }

b.创建1个Phone的类,类的属性有brand、type,类的方法有play(Music music),并在play()方法中调用Music类中的方法music.showInfo()。

 public class Phone{
String brand;
String type;
public void play(Music music){
System.out.println("正在使用"+brand+type+"播放歌曲");
music.showInfo();
}
}

c.创建1个phone对象和1个music对象,给2个对象的属性赋值,并通过调用phone.play(music)方法最终实现了手机播放一首歌曲的需求。

 public class Test03{
public static void main(String[] args){
Phone phone =new Phone();
phone.brand="华为";
phone.type="P20";
Music music =new Music();
music.name="我很快乐";
music.singer="刘惜君";
music.times=213;
music.content="我也不会难过\n你不要小看我\n有什么熬不过\n大不了唱首歌\n虽然是悲伤的歌\n声音有点颤抖\n也比你好的多\n我还是很快乐";
phone.play(music);
}
}

d.程序运行结果:

Java基础--面向对象编程1(类与对象)的更多相关文章

  1. java面向对象编程(类、对象)

    一.面向对象编程概述面向对象编程(Object  Oriented  Programming,缩写为OOP)是当今最流行的程序设计技术,它具有代码易于维护.可扩展性好和代码可常用等优点.面向对象的设计 ...

  2. java面向对象编程(一)-类与对象

    1.问题的提出      张老太养了两只猫猫:一只名字叫小白,今年3岁,白色.还有一只叫小花,今年100岁,花色.请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字,年龄,颜色.如果用户输入的小 ...

  3. day24:面向对象设计与面向对象编程、类和对象

    一.三大编程范式: 面向过程: 面向函数: 面向对象: 二.程序的进化论: 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 2.从上述的指令中提取重复的代码块或逻辑,组织到一起(比方说,你定 ...

  4. 1.面向过程编程 2.面向对象编程 3.类和对象 4.python 创建类和对象 如何使用对象 5.属性的查找顺序 6.初始化函数 7.绑定方法 与非绑定方法

    1.面向过程编程 面向过程:一种编程思想在编写代码时 要时刻想着过程这个两个字过程指的是什么? 解决问题的步骤 流程,即第一步干什么 第二步干什么,其目的是将一个复杂的问题,拆分为若干的小的问题,按照 ...

  5. JAVA基础第三章-类与对象、抽象类、接口

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  6. ES6学习笔记(一):轻松搞懂面向对象编程、类和对象

    目录 面向过程编程P OP(Process oriented programming) 面向对象编程OOP(Object Oriented Programming) 总结 @ 面向过程编程P OP(P ...

  7. Objective-C语言介绍 、 Objc与C语言 、 面向对象编程 、 类和对象 、 属性和方法 、 属性和实例变量

    1 第一个OC控制台程序 1.1 问题 Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序.其运行于苹果公司的Mac操作系统下. 本案例要求使用集成 ...

  8. 1.Java基础-面向对象编程思想(封装继承多态接口)

    封装: 1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别. 2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的 ...

  9. Java基础--面向对象编程3(继承)

    1.继承的作用 为了提取两个类中公共的代码,可以使用继承抽取重复性的代码到一个公共类中. 这个公共的类称为父类(super class),继承于父类的类称为子类(sub class). 2.java继 ...

随机推荐

  1. weblogic 安全漏洞 CVE-2017-5638

    关于安全漏洞 CVE-2017-5638 的 Weblogic Server 防护建议 关于Weblogic Server如何防护防止近期爆出的Struts 2远程代码执行安全漏洞,为您提供以下内容参 ...

  2. 阅读笔记:基础知识(Java篇)

    1. GC机制(垃圾回收机制) 找到垃圾的方法:引用计数法.可达性分析法 回收垃圾的方法:标记清除算法.复制算法.标记整理法.分代算法 2. JVM内存划分 线程私有:程序计数器.JVM虚拟机栈.本地 ...

  3. Android开发支付集成——微信集成

    支付宝支付传送门:https://www.cnblogs.com/dingxiansen/p/9208949.html 二.微信支付 1. 微信支付流程图 相比较而言,微信支付是要比支付宝麻烦一些,并 ...

  4. 学习安卓开发[5] - HTTP、后台任务以及与UI线程的交互

    在上一篇学习安卓开发[4] - 使用隐式Intent启动短信.联系人.相机应用中了解了在调用其它应用的功能时隐式Intent的使用,本次基于一个图片浏览APP的开发,记录使用AsyncTask在后台执 ...

  5. 关于boostrap的modal隐藏问题(前端框架)

    Modal(模态框) 首先,外引boostrap和Jquery的文件环境: <link rel="stylesheet" href="https://cdn.sta ...

  6. Flume1.9.0的安装、部署、简单应用(含分布式、与Hadoop3.1.2、Hbase1.4.9的案例)

    目录 目录 前言 什么是Flume? Flume的特点 Flume的可靠性 Flume的可恢复性 Flume的一些核心概念 Flume的官方网站在哪里? Flume在哪里下载以及如何安装? 设置环境变 ...

  7. PO,VO,TO,BO,DAO,POJO的解释

    java的(PO,VO,TO,BO,DAO,POJO)解释  O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库绑定 ...

  8. python学习_2

    1.pycharm部分技巧 1)创建时路径尽量要避免中文2)用滚轮调整编辑器字体大小    1.file->setting...->editor->general 搜索'mouse' ...

  9. Linux云计算运维-Redis

    Redis简介 Redis是一款开源的,ANSI C语言编写的,高级键值(key-value)缓存和支持永久存储NoSQL数据库产品. Redis采用内存(In-Memory)数据集(DataSet) ...

  10. python学习——读取染色体长度(五:从命令行输入染色体长度)

    # 传递命令行参数 # 导入sys模块 import sys print(sys.argv)   命令行操作 python argv.py 10 20 30 40 50 回车输出 ['argv.py' ...