Java面向对象——类,对象和方法
1.类的概念
在生活中,说到类,可以联想到类别,同类,会想到一类人,一类事物等等。而这一类人或事物都是具有相同特征或特点和行为的,我们根据不同的特征或特点和行为将他们归类或分类。同时,当我们认识一个新事物的时候,我们一般来说是从过往的事物中总结事物的特点(特征),并比对新事物,把新事物进行归类,以达到认识新事物。
在Java程序中,类是对一组具有相同特征和行为的对象的抽象描述。可以看出和生活中对类的定义很像。但是在Java程序中,我们将其相同的特征称为属性,行为则称为方法。
理解:
[1] 类包含了两个要素:特性和行为 => 同一类事物具有相同的特征和行为。
[2] 类是一个群体性概念。例如:网红、明星、草根、宅男、萝莉
[3] 类可以理解为现实生活中所说的 “类型”
引入类的作用:在程序中,引入类的概念,就是为了快速生成更多的具有相同特性和行为的事物。
2.对象的概念
对象是类的具体实现,表示一个独立的、唯一的个体。
理解
[1] 对象是通过类生成的。对象一定具备该类的特性和行为。
[2] 对象是个体。类是群体。=> 对象是独立的、唯一的。=> 属于同一类型的对象也是相互独立的。
3.类和对象的区别
类是抽象的,是一个群体概念。对象是具体的,是一个独立个体。
一个独立的对象一定属于某个类。理解为类包含对象
4.属性和方法
4.1属性
类或者对象具有的特征在程序中称为属性(property/attribute)
具体对象的属性拥有的数据称为属性值。
属于同一类对象都具有相同的属性,但各个对象都拥有各自的属性值。这些属性值区分了不同的对象。
4.2方法
类或者对象的行为称为方法(Method),可以理解为:一个对象在类中可以做很多东西,能做什么在类里面就叫做方法。
例如:定义一个猫类,猫类中有一个对象加菲猫,加菲猫可以做很多事情如:吃,喝,睡觉,这些在类中称为方法。
5.定义类和方法
开发者可以根据需要自定义类,语法
[修饰符] class 类名{
属性
方法
}
案例:定义一个类,实例化对象
public class SuperHero{
//声明类的属性
String name;
int age;
char gender;
String skill;
//声明类的方法 public void hit(String kname){
System.out.println("我"+name +kname+"打灭霸");
} public void showInfo(){
System.out.println("年龄"+age);
System.out.println("性别"+gender);
System.out.println(skill);
System.out.println("我!"+name+"打钱!");
}
}
public class Test01{
public static void main(String[] args){
SuperHero thor = new SuperHero();//创建对象,实例化过程
//给属性赋值(.语法)
thor.name = "雷神";
thor.gender = '男';
thor.skill = "飞,放电";
//调用方法
thor.hit("用个锤子");
thor.showInfo(); System.out.println();
SuperHero amercaMan =new SuperHero();
//给属性赋值(.语法)
//amercaMan.name = "美国队长";
//amercaMan.gender = '男';
//amercaMan.skill = "盘他 ";
//调用方法
amercaMan.hit("用个盘子");
amercaMan.showInfo();
}
}
5.1.局部变量和成员变量
局部变量:在方法或者语句块中声明的变量称为局部变量,语句块就是作用域。
局部变量在其所在的作用域有效,出了作用域就无效。
作用域可以嵌套,内部作用域可以访问外部作用域的变量。
public void learn(String cName){
// 方法中定义的局部变量
System.out.println(name+" learn "+cName); // 语句块中定义局部变量
{
int count = ;
System.out.println(" count "+count);
System.out.println("cname"+cName);
} // System.out.println(" count "+count);
}
成员变量:在方法外部,类的内部定义的变量称为类的成员变量,简称成员变量。有些地方把属性称为filed(字段)
成员变量必须通过类的实例/对象调用,例如 stu.name ,有时成员变量也称为实例变量。
成员变量 == 属性 == 字段 == 实例变量
类中包含两个成员:成员变量和成员方法。
5.2属性的声明
[修饰符] 属性类型 属性名称 [=默认值]
在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。(数值:0,0.0 char:\u0000, boolean:false, 所有引用类型:null)
属性/成员变量的作用域范围是整个类体。
6.面向对象编程思维
面向对象编程(oop),把一切都看出对象,通过类构造对象,java程序都是通过class类组织的。
所谓面向对象通过类构造对象,使用对象完成需求。
需求:用手机播放一首歌曲
public class Phone{ String brand;
String type;
float price; public void showInfo(){
System.out.print("品牌:"+brand);
System.out.print(",型号:"+type);
System.out.println(",价格:"+price);
} public void play(Music music){
System.out.println("正在用"+brand+type+"播放<<"+music.name+">>歌曲");
music.showInfo();
}
}
public class Music{ String name;
String actor;
int times;
String content; public void showInfo(){
System.out.println("-- "+name+" --");
System.out.println("演唱者:"+actor); int h = times / 3600;
int m = times % 3600 / 60;
int s = times % 60; System.out.println("时长:"+h+":"+m+":"+s);
System.out.println(content);
}
}
public class Test01{
public static void main(String[] args){ Music music = new Music();
music.name = "向天再借五百年";
music.actor = "韩磊";
music.times = 356;
music.content = "沿着江山起起伏伏温柔的曲线,\n放马爱的中原爱的北国和江南"; Phone phone = new Phone();
phone.brand = "Apple";
phone.type = "iPhone XR";
phone.price = 5999.0f; phone.play(music); }
}
总结:
面向对象编程就是完成一个复杂的需求需要各个对象之间相互配合完成。对象的创建需要定义类型,java程序就是通过类来组织程序的。
java中一切都是对象。
7.抽象
7.1抽象的概念
根据业务中的对象抽象成计算机可识别的类,简单的说就是抽出各个对象像的部分。
抽象的步骤
[1] 发现类(归类)。类一般用名词。
[2] 发现类的属性(特征)。属性一般用名词。发现类的属性时,一般只放和业务相关的属性。
[3] 发现类的方法(行为)。方法一般是动词。只放和业务相关的方法。
抽象一个下载类。
[1] DownLoad类
[2] url/name/size/progress/type/location…
[3] start()/pause()/stop()/delete()…
7.2类图
类图可以让开发者更直观地创建类。
+ public / – private
Java面向对象——类,对象和方法的更多相关文章
- Java面向对象-类与对象
Java面向对象-类与对象 类与对象的关系 我们通俗的举个例子,比如人类是一种类,张三这个人就是人类的具体的一个个体,也就是java中的对象:这就是一个类与对象的关系: 类的定义 下面看实例 类的创建 ...
- 理解JAVA - 面向对象(object) - 属性,方法
理解JAVA - 面向对象(object) - 属性,方法 多态的体现: 向上造型,父类接收子类对象:向上造型: 从父类角度看不到子类独有的方法:面向对象,人类认知世界的方式:生活中每天都 ...
- Java面向对象 其他对象
Java面向对象 其他对象 知识概要: (1)可变参数 (2)静态导入 (3)System (4)Runtime (5)Date Calendar (6)Math 本 ...
- Java中类,对象,方法的内存分配
Java中类,对象,方法的内存分配 以下针对引用数据类型: 在内存中,类是静态的概念,它存在于内存中的CodeSegment中. 当我们使用new关键字生成对象时,JVM根据类的代码,去堆内存中开辟一 ...
- Java面向对象——类的成员
Java面向对象——类的成员 摘要:本文主要介绍了类的常见成员. 属性 属性称为成员变量,一般来讲不用赋值,因为有默认值,另外显式赋值没有意义会导致所有由此类创建对象都是此值. 默认值 Boolean ...
- Python的高级特性8:你真的了解类,对象,实例,方法吗
Python的高级特性1-7系列是本人从Python2过渡3时写下的一些个人见解(不敢说一定对),接下来的系列主要会以类级为主. 类,对象,实例,方法是几个面向对象的几个基本概念,其实我觉得很多人并不 ...
- Java AtomicInteger类的使用方法详解_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下: public class Samp ...
- 第4篇-JVM终于开始调用Java主类的main()方法啦
在前一篇 第3篇-CallStub新栈帧的创建 中我们介绍了generate_call_stub()函数的部分实现,完成了向CallStub栈帧中压入参数的操作,此时的状态如下图所示. 继续看gene ...
- 第29篇-调用Java主类的main()方法
在第1篇中大概介绍过Java中主类方法main()的调用过程,这一篇介绍的详细一点,大概的调用过程如下图所示. 其中浅红色的函数由主线程执行,而另外的浅绿色部分由另外一个线程执行,这个线程最终也会负责 ...
- android NDK 实用学习(三)- java端类对象的构造及使用
1,读此文章前我假设你已经读过: android NDK 实用学习-获取java端类及其类变量 android NDK 实用学习-java端对象成员赋值和获取对象成员值 2,java端类对象的构造: ...
随机推荐
- linux关于软件安装的博文
https://www.cnblogs.com/kundeg/archive/2018/03/06/7247934.html https://www.cnblogs.com/qiaozhoulin/p ...
- jdbc中的sql注入
- SpringBoot Mybatis项目中的多数据源支持
1.概述 有时项目里里需要抽取不同系统中的数据源,需要访问不同的数据库,本文介绍在Springboot+Mybatis项目中如何支持多数据源操作. 有需要的同学可以下载 示例代码 项目结构如下: 2. ...
- php memcached-gui工具
转载: https://github.com/mailopl/memcached-gui/blob/master/memcached.php 适用于在服务端查看memcache内存数据 php代码: ...
- mq_receive
NAME mq_receive - 从消息队列中获取消息 (REALTIME) SYNOPSIS #include <mqueue.h> ssize_t mq_receive(mqd_t ...
- 1002-谈谈ELK日志分析平台的性能优化理念
在生产环境中,我们为了更好的服务于业务,通常会通过优化的手段来实现服务对外的性能最大化,节省系统性能开支:关注我的朋友们都知道,前段时间一直在搞ELK,同时也记录在了个人的博客篇章中,从部署到各个服务 ...
- 2018-2019-1 20189201 《LInux内核原理与分析》第八周作业
只有在天足够黑的时候你才能看到星星. BY WAY GK 加油 一.书本第七章知识总结[可执行程序工作原理] 1. ELF目标文件格式 ELF全称Executable and Linkable For ...
- 【JavaScrpt】用js创建html上的元素
// 在body下创建一个div var createDiv=document.createElement("div"); createDiv.id='id_i'; createD ...
- C# 错误集锦
①字段重复 js → qs 仔细 ② 代码臃肿 通过判断 资产类型zc_type来判断模块的显隐 实际在其中嵌入 <%=zc_type == "2"?"" ...
- React Component Lifecycle(生命周期)
生命周期 所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态,理解生命周期,是合理开发的关键.RN 组件的生命周期整理如下图: 如图,可以把组件生命周期大致分为三个阶段: 第一阶段:是组件第一 ...