回首看Java类与对象

类和对象的关系

     类实质上定义的是一种对象类型,他是对具有相似行为的对象的一种抽象,广义上说就是对象的集合,比如说,众多的人组成人类,人就是人类这个类的实例化,再比如,找女朋友这个问题上,女朋友是一个类,这个类具有女性,肤白貌美的属性,将女朋友这个类实例化就是确定到某一个人了。类是对象的抽象表现,对象是类的具象,ps:对象不止一个.

封装的概念

概念:把相关的数据及其操作组织在类内,构成独立意义的构件(组件),称为封装。

比如:生活中的各种控制开关,遥控器,都用到类的封装,他们把这些功能封装在一个小盒子里,在操作时,只需要按控制键,不需要知道怎么去工作的,对外只是表现为封装体系间的接口关系。包概念的体现了封装性,将一组类封装在一个包内。

封装基本单位:

对象

类的创建

类有2中基本成分:变量和方法,变量可以使是基本类型,是数组,也可以是实例,方法负责处理这些变量,【方法中变量只能在类中定义,类的方法一般是public     类的变量一般是private】

比如创建一个女朋友的类

public class girlfriend

{

private float shengao;

private float sanwei;

private int age;

private float weight;

以上是对这个类进行属性的定义【身高,三围,年龄,定义为私有,不能随随便便被人知道吧】

有了成员变量,得有成员方法来处理这些变量,女生大都爱吃,就定义一个吃的方法

void eat(){

System.out.println("l like eating")
}

方法定义完成后就开始调用这个方法,前提是你得有个女朋友。【也就是类的实例化】

public static void main(String args[])//主函数入口

{

girlfriend mm=new girlfriend();//类的实例化,女朋友有了,叫mm。

mm.eat();调用这个方法//使用女朋友的功能

   }

}


注意事项:

访问对象方法/属性。如果是静态方法/属性,是带有static关键字的属性,可以直接通过类名来访问

Java程序执行过程分析,一张图告诉你



举个栗子:

源文件:鲜活的鱼

编译器:刀具

字节码文件:被杀的鱼

解释器:炊具

工程:鲜美的鱼汤


方法的分类

1类方法【静态方法,带有static的关键字的方法】

2.实例方法,用户自己写的方法【自定义方法】

3.构造方法【方法名与类名一模一样】

声明方法常用格式

访问修饰符  返回类型 方法名(参数列表){

方法体

}

带有final的关键字的方法,表名该方法不能被重载,也不能被覆盖


方法重载

概念:多个方法名相同,参数不同【在一个类中】

参数不同体现在以下2点

1.参数类型相同,个数不同

2参数个数相同,类型不同

方法调用

1,非静态     对象名.方法名();

2,静态      对象名/类名.方法名();

方法与方法之间的调用

1.在本类中,静态方法直接调用静态方法,直接写方法名即可

2.在本类中,静态调用非静态方法,就必须通过对象来调用【对象名.方法()】

3.在不同类中,静态调用其他类中静态方法     方法【类名.静态方法名.()】

4.在不同类中,静态调用其他类中非静态方法   需要导入被调用的类中的包,以及通过创建对

象调用【在调用主类中创建从类中的对象调用】调用的类称主类,被调用的称从类 容易曲分

非静态方法内部调用

1.在本类中,非静态方法可以直接调用非静态方法

2.在不同类中非静态方法调用其他类静态方法,需要导入被调用类中的包,并且需要通过类名来调用

3.在不同类中  ,非静态调用其他类中非静态方法 ,需要导入被调用的类中的包,以及通过创建对象调用【在调用主类中创建从类中的对象调用】调用的类称主类,被调用的称从类 容易曲分。


方法参数及其传递问题

Java中只有值传递,不存在引用传递

值传递:

1.基本类型传递:在栈道中分配内存,在传入时,实参会多复制一份,在方法内修改参数不影响原实参。

2.引用类型传递【不是引用传递】这里看代码

字丑了


方法递归

所谓递归,就是方法调用自身,但不会无休止调用下去,这里遵循条件。要想使用递归,遵寻下面要求;

1.必须满足一个结束条件

2.方法调用自身

类的属性

1.全局变量【定义在类中 在方法外面,类中的方法都可以访问它】

2.局部变量【定义在类中,某个方法里,只有这个方法可以访问】


this关键字

接地气来说,this指的是当前对象,至于哪个对象,只有在运行期间才能知道是哪一个对象

具体看图

最后来说说包

   咱要说的包可不是书包,背包,LV包,要说的是Java中的包。

怎么说呢 ,比如,在电脑上创建文件夹,对文件进行分类,分成视屏,音乐,照片,学习资料,当然还有苍老师,这就是对文件分文别类,Java中的包就起到类似文件夹的作用,主要给class分类的工作。便于维护管理。


包名的定义:package com.canglaoshi

用包导入类型

1.导入包中所有的类

import  包名.*;

2.导入包中具体的类

import 包名.类名

3.编辑包

{

1.javac -d.类名.java

d:创建目录

" . ":当前目录 比如编辑一个女朋友类 Javac -d. girlfriend.java

如果在类中是这样去定义一个包【package com.women.meimv;】

那么就可以在com的文件夹下的women的文件下的entity文件夹下找到 girlfriend.java 文件

2.Java  包路径/类名【了解即可】

}

包名规范

建议全部小写,不管有多少个单词组成

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,342评论 18 399
  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 4,900评论 0 2
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,946评论 0 62
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 7,611评论 0 11
  • 今天收到了平生第一次QQ悄悄话,内容很简单: 3 我一连串问题,那个“匿名好友”说:就…就是随便发发… 我差点就信...
    我有嘉宾阅读 1,747评论 0 0

友情链接更多精彩内容