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

  https://www.processon.com

Java面向对象——类,对象和方法的更多相关文章

  1. Java面向对象-类与对象

    Java面向对象-类与对象 类与对象的关系 我们通俗的举个例子,比如人类是一种类,张三这个人就是人类的具体的一个个体,也就是java中的对象:这就是一个类与对象的关系: 类的定义 下面看实例 类的创建 ...

  2. 理解JAVA - 面向对象(object) - 属性,方法

    理解JAVA - 面向对象(object) - 属性,方法 多态的体现:    向上造型,父类接收子类对象:向上造型:    从父类角度看不到子类独有的方法:面向对象,人类认知世界的方式:生活中每天都 ...

  3. Java面向对象 其他对象

     Java面向对象  其他对象 知识概要:             (1)可变参数 (2)静态导入 (3)System (4)Runtime (5)Date  Calendar (6)Math 本 ...

  4. Java中类,对象,方法的内存分配

    Java中类,对象,方法的内存分配 以下针对引用数据类型: 在内存中,类是静态的概念,它存在于内存中的CodeSegment中. 当我们使用new关键字生成对象时,JVM根据类的代码,去堆内存中开辟一 ...

  5. Java面向对象——类的成员

    Java面向对象——类的成员 摘要:本文主要介绍了类的常见成员. 属性 属性称为成员变量,一般来讲不用赋值,因为有默认值,另外显式赋值没有意义会导致所有由此类创建对象都是此值. 默认值 Boolean ...

  6. Python的高级特性8:你真的了解类,对象,实例,方法吗

    Python的高级特性1-7系列是本人从Python2过渡3时写下的一些个人见解(不敢说一定对),接下来的系列主要会以类级为主. 类,对象,实例,方法是几个面向对象的几个基本概念,其实我觉得很多人并不 ...

  7. Java AtomicInteger类的使用方法详解_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下: public class Samp ...

  8. 第4篇-JVM终于开始调用Java主类的main()方法啦

    在前一篇 第3篇-CallStub新栈帧的创建 中我们介绍了generate_call_stub()函数的部分实现,完成了向CallStub栈帧中压入参数的操作,此时的状态如下图所示. 继续看gene ...

  9. 第29篇-调用Java主类的main()方法

    在第1篇中大概介绍过Java中主类方法main()的调用过程,这一篇介绍的详细一点,大概的调用过程如下图所示. 其中浅红色的函数由主线程执行,而另外的浅绿色部分由另外一个线程执行,这个线程最终也会负责 ...

  10. android NDK 实用学习(三)- java端类对象的构造及使用

    1,读此文章前我假设你已经读过: android NDK 实用学习-获取java端类及其类变量 android NDK 实用学习-java端对象成员赋值和获取对象成员值 2,java端类对象的构造: ...

随机推荐

  1. 集腋成裘-08-ECharts -简介-01

    目标:让数据说话. 大数据时代的到来以及有效应用,大幅度提升了企业的管理能力.决策科学化与可执行性水平,推动传统决策方式朝着数据驱动转型.可视化数据分析对决策者产生的意义将在事前预测.事中感知以及事后 ...

  2. Java Spring Boot VS .NetCore (五)MyBatis vs EFCore

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  3. fillder---工具栏隐藏/显示

    显示隐藏工具栏方法:view---show toolbar

  4. Mapreduce中maptask过程详解

    一.Maptask并行度与决定机制 1.一个job任务的map阶段的并行度默认是由该任务的大小决定的: 2.一个split切分分配一个maprask来并行处理: 3.默认情况下,split切分的大小等 ...

  5. jdbc和odbc

    JDBC简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,它是Java十三个规范之一.可以为多种关系数据库提供统一 ...

  6. PostgreSQL自学笔记:7 插入、更新与删除数据

    7 插入.更新与删除数据 7.1 插入数据 先创建表person: create table person( id int not null, name char(40) not null defau ...

  7. WIN10 拨号连接下 如何开启移动热点

    错误提示为:我们无法设置移动热点,因为你的电脑未建立以太网,WIFI或手机网络连接. 解决方法: 1. 首先用手机或其他设备建立无线热点.  2. 电脑连接步骤1中的热点,电脑端打开移动热点.  3. ...

  8. Linux 新手应该知道的 26 个命令

    https://linux.cn/article-6160-1.html 当你进入了 Linux 的世界,在下载.安装 了某个 Linux 发行版,体验了 Linux 桌面并安装了一些你喜爱和需要的软 ...

  9. I Think I Need a Houseboat POJ - 1005

    I Think I Need a Houseboat POJ - 1005 解题思路:水题 #include <iostream> #include <cstdio> #inc ...

  10. Java是如何加载资源文件的?(源码解毒)

    上文提到应老板要求开发一个测试工具能方便的加载存于文件中的测试参数,当时考虑既然是测试,把测试参数文件和测试类放在一起岂不是很方便,但是老板说:我的需求是你把测试参数文件放到统一文件夹下比如resou ...