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端类对象的构造: ...
随机推荐
- tcpdump抓包常用命令列举
情形一.采集指定网络接口和端口的数据包 sudo tcpdump -s 0 -x -n -tttt -i bond0 port 55944 -w /tmp/mysql_tmp.tcp 情形二.采集 ...
- SpringBoot之hello world!
哈哈哈,还是在元旦这一天对你下手了.麻溜的给自己充电,在这个寒冬,不断听到裁员的消息或者新闻,可对于我这个外包和外派的人来说,好像并没有受到什么影响.可能是人手不够可能是项目很忙.对于明年的三月金四月 ...
- 数据库链接池c3p0的配置
由于我看的是远古教程,所以里面各种驱动jar包还有c3p0包都是远古版本,对于最新版本的jdbc已经失去的作用,所以我在这里重写一下! 1.首先是c3p0的位置,package的外面,src的里面 2 ...
- JavaScript 动态选择方法和属性
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- Python_多进程
Python 多进程库 multiprocessing ,支持子进程.通信.数据共享.执行不同形式的同步 多进程,绕过gil ,实现多核的利用,多进程也是原生进程,由操作系统维护 在pycharm中, ...
- Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第九集-补充-之安装mariadb】
由于也是第一次安装,再此不必献丑了,贴上参考链接: 1,指导我为什么使用mariadb而不是用mysql:https://blog.csdn.net/liumiaocn/article/details ...
- C#订阅与发布标准实现
大概看了下C#官方提供的IObservable接口以及IObserver接口来实现发布和订阅,写的很标准,很有代表性,做下笔记,以后要是项目需要用到发布订阅再基于自己的需求改: public clas ...
- 执行Android后台任务的最佳实践
灵活执行后台任务可以帮助提升应用性能,并最小化电量损耗. Android后台任务主题包含以下三个子主题: 1. 在IntentService中执行后台任务: 2. 使用CursorLoader在后台加 ...
- ZooKeeper Getting Started Guide
http://zookeeper.apache.org/doc/trunk/zookeeperStarted.html What is ZooKeeper? ZooKeeper is a centra ...
- 原生javascript制作时钟
用JavaScript来制作实时的时钟 效果图如下: 接下来,我会一步一步向大家介绍如何制作,并将里面的一些值得注意的事项提出来. 首先是把框架搭构起来, <div> <canvas ...