什么是对象


在Java语言,全部的人,事物或者模块都是一个对象。

同样的对象具有一些同样的特性。



狗,猫,蛇3个对象(动物的对象)



苹果,梨,桔子3个对象(水果的对象)

什么是类


能够将现实生活中的对象经过抽象

这样的抽象数据类型称为类。

动物类(Animal)

水果类(Fruit)

类和对象的关系


类是对象的模板(抽象化表示),对象是类的实例化(详细化的展现)

类的组成结构

Java是纯面向对象(除了8种基本数据类型)

而对象是从类产生的。因此类是组成Java程序最基本也是最核心的

元素。

变量(属性,成员变量)



   方法(函数,成员方法,责任)



   消息(对象与对象之间的通讯,对象数据之间的传递)

属性的定义

属性的的定义

属性的初始值(默认值)

booleanfalse

byte/short/int/long 0

float 0.0f

double 0.0d

char ‘\u0000’

对象类型 null

变量的分类与作用域

类变量:类对象属于对象。static修饰的变量称为类变量。

静态区中。仅仅实例化一次,因此仅仅占领一次内存。



对象的成员变量:成员变量是属于对象。

堆区。



局部变量。局部方法中定义的变量,以及形式參数都是局部变量。

栈区。

变量的作用域(生命周期)

就是不同类型的变量在内存中存活的时间。

方法的分类:

按返回值划分:

有返回值

无返回值

按參数划分:

有參数方法

无參数方法

void sum(int x,int y):參数定义之间,用逗号隔开。

sum(x,y);//调用也是用逗号隔开。

实參(实际的參数)

形參(形式參数)。

參数传递时,实參传给形參有两种方式:

A:假设传递是基本数据类型的话,那么仅仅是值的拷贝。

B:假设传递是对象类型的话,那么传递的是对象的地址。

按功能方法

构造方法

实例方法(对象方法,成员方法)

类方法

构造方法:

是实例化对象必须运行的操作。

用于构建一个新的对象的初始化操作。

假设没有构造方法的话,系统自己主动创建一个空的构造方法。

假设有构造方法的话,系统将不再构建。

注意点:

构造方法不是一个无參的构造方法

public Person(int id){

}

Person person = new Person();//错误

A:Person person = new Pserson(1);

B:再提供一个空的构造方法。

this:

表示当前对象。

this指向自己的引用

能够用this调用当前对象的属性与方法。

方法的重载(OverLoad)

方法重载即指同一个类内多个方法能够享有同样的名字。

可是这些方法的參数必须不同(參数个数不同或參数类型不同)。

调用的时候通过參数的个数或者的类型由编译器来寻找究竟要调用哪一个

方法。



类方法,对象方法,构造方法都能够做方法的重载。

当重载的參数假设有继承关系时。除非在程序中精确描写叙述要

传递的类型。否则调用的都是符合子类參数的方法。

Object obj = null;
String str = null; test.print(obj); //精确类型
test.print(str); //精确类型
test.print(null); //都匹配的类型,调用子类的方法。 public void print(Object some){
System.out.println("Object version print");
}
public void print(String some){
System.out.println("String version print");
}
/**
* 定义一个Student的类
*/
public class Student{
//属性声明的部分
int stu_id;
char stu_sex;
String stu_name; //类变量
static String class_id = "JN1001"; //有返回值的方法
int getScore(){
//定义局部变量
int english = 0;
return english;
}
int getScope2(){
double math = 12.345; return (int)math;
}
//无返回值的方法
void study(){
System.out.println("大家在学习Java");
} public static void main(String args[]){
Student stu = new Student();
stu.study(); int result = stu.getScore(); int result2 = stu.getScope2();
System.out.println("result = "+result + ",result2 = "+result2); } }
public class Student_Method{

	//构造方法
public Student_Method(){
System.out.println("对象的构造方法");
} //对象(成员)方法
int divde(int x,int y){
return x / y;
} //类方法
static int sum(int x,int y){
return x + y;
} public static void main(String args[]){
//调用类方法
Student_Method.sum(2,3); //调用成员方法
//Student_Method.divde(2,3); //不能调用
System.out.println("1111");
Student_Method test = new Student_Method();
System.out.println("222");
test.divde(3,4);
}
}
public class TestOverLoad{
public static void main(String[] args){
Test test = new Test();
//test.print(null);
Object obj = null;
String str = null;
StringBuffer strBuffer = null;
System.out.println(obj);
System.out.println(str);
test.print(obj);
test.print(str);
test.print(strBuffer);
test.print(null);
}
}
class Test{ public void print(Object some){
System.out.println("Object version print");
}
public void print(String some){
System.out.println("String version print");
}
public void print(StringBuffer some){
System.out.println("StringBuffer version print");
} }

J2SE基础:1.类和对象基础的更多相关文章

  1. MOOC C++笔记(二):类和对象基础

    第二周:类和对象基础 面向对象程序设计的四个基本特点 抽象.封装.继承.多态. 面向对象程序设计的过程 1.从客观事物抽象出类 抽象出的事物带有成员函数与成员变量(类似于带函数的结构体) 成员变量和成 ...

  2. 086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结

    086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结 本文知识点:面向对象基础(类和对象)总结 说明 ...

  3. JAVA 类和对象基础知识详解

    /*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 1978702969@qq.com*/ 和C++一样,JAVA也是一门面向对象的语言,其基础和核心是类和对象.而面向对象的思想是来源与显示生 ...

  4. java 类与对象基础整理

    之前学习javaSE的时候,没有针对性地对对类与对象的一些基础进行整理,下面这些内容是笔记内容整理后的,希望以后自己可以通过这些博客时常复习! 一.类and对象的基础 类似于类的生命啊,类与对象的关系 ...

  5. java类与对象基础篇

    java面向对象基础篇 面向对象程序设计(Object Oriented Proframming ,OOP) 面向对象的本质是:以类的方式组织代码,以对象的方式组织(封装)数据. 面向对象的核心思想是 ...

  6. ObjectiveC1基础代码——类和对象

    // //  main.m //  ObjectiveC1 // //  Created by scjy on 15/10/30. //  Copyright © 2015年 lizhipeng. A ...

  7. C++_基础_类和对象

    内容: (1)引用 (2)类型转换 (3)C++社区给C程序员的建议 (4)面向对象编程的概念 (5)类和对象 (6)构造函数 (7)初始化列表及其必要性 1.引用1.1 指针和引用的使用说明(1)指 ...

  8. java基础知识—类和对象

    1.对象的特征---类的属性 每个对象的每个属性都有特定的值 对象的操作---类的方法 2.封装 对象同时具有属性和方法两项属性. 对象的属性和方法同时被封装在一起,共同体现事物的特性,二者相辅相成, ...

  9. PHP -- 类和对象基础入门

         本文目录:    创建简单类和对象 继承 抽象类 接口 构造方法 析构函数     1. 创建简单类    创建一个People的类,在这里有四个要点说明一下: 第一个是在PHP中,访问属性 ...

随机推荐

  1. Eclipse在点击运行后不能自动保存的解决

    今天在eclipse上写程序调试时,发现当我点击运行按键之后,并不能在运行前帮我自动保存,也就是说每次修改代码之后, 运行的还是前一次运行之前的代码,并不是修改之后的代码,因此通过在网上搜索解决方案之 ...

  2. 斐讯K2 V22.X.X.X 新版固件 刷机教程 (开telnet,安装SSH,adbyby,刷breed,华硕Padavan)

    源:http://www.right.com.cn/forum/thread-191833-1-1.html 属于我的上一个帖子的升级版,基本属于无脑操作,点击恢复就可以自动刷好breed,浏览上传新 ...

  3. C++(MFC)中WebBrowser去除3D边框的方法(实现IDocHostUIHandler接口)

    先说实在的:最终解决办法是实现IDocHostUIHandler接口,在GetHostInfo方法里解决,但“实现接口”意味着QueryInterface.AddRef.Release三个方法必须实现 ...

  4. GitLab 5.3 升级注意事项

    最主要就是需要更新的Git.我的Ubuntu12.04通过apt-get install安装的git版本过低. 所以只能通过源代码安装. 参考下面的步骤: wget git-core.googleco ...

  5. 基于TFTP协议的远程升级设计

    说明:因为CSDN博客编辑器对word格式近乎不支持.因此对表格使用了图片方式(最后一个表格未使用图片格式.大家能够看看效果),CSDN博客编辑器上传图片十分不人性化(直接复制图片是不显示的),因此本 ...

  6. php设计模式——UML类图

    前言 用php开发两年多了,准备也写一下平时常用的设计模式,都是基于自己的实践经验,当然,用设计模式之前首先要看懂设计模式,因此这里首先讲解一下UML类图.通过UML类图,能更好的和大家交流,也能很容 ...

  7. [置顶] think in java interview-高级开发人员面试宝典(七)

    上两周研发任务太紧了,所以担搁了一下,我们继续我们的面试之旅. 下面是一个基于图书系统的15道SQL问答,供大家参考 问题描述:本题用到下面三个关系表:CARD     借书卡.   CNO 卡号,N ...

  8. 【Android小应用】颈椎保健操Android开源项目

    前段时间在知乎上回答已入 IT 行业的前辈,有哪些关于保护身体健康的知识分享给 IT 新人? ,回复了一张图片,评论里面有知友希望通过程序可以实现,我后面尝试着通过程序实现了效果,现开源出来,大家可以 ...

  9. poj3984(经典dfs)

    题目链接:http://poj.org/problem?id=3984 分析:直接深搜从起点到终点,如何取最短路线,其实只要优先向下或向右走即可. #include <cstdio> #i ...

  10. hdu3033(变形分组背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3033 题意:Iserlohn要买鞋,有k种牌子,每种牌子至少买一双鞋子.每双鞋子有标价跟实际价值.求用 ...