什么是对象


在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. HDU4939Stupid Tower Defense (有思想的dp)

    Stupid Tower Defense Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Oth ...

  2. Redisql: the lightning fast data polyglot【翻译】 - Linvo's blog - 博客频道 - CSDN.NET

    Redisql: the lightning fast data polyglot[翻译] - Linvo's blog - 博客频道 - CSDN.NET Redisql: the lightnin ...

  3. Swift - 工具条(UIToolbar)的用法

    1,UIBarButtonItem是工具条按钮,有如下5种init初始化方法: (1)初始化为普通图片按钮 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...

  4. 打开asp出现An error occurred on the server when processing the URL

    分享到:   2013-01-21 15:38   提问者采纳   方法一 以管理员身份运行CMD,将目录定位到%windir%\system32\inetsrv\,然后执行appcmd set co ...

  5. ubuntu12.04安装搜狗输入法配置,安装packettracer字体设置,软件推荐

    装上系统,后的各种配置,各种出错之后的解决. 一.安装搜狗输入法 如果系统以前安装了先卸载: sudo apt-get remove fcitx* #删除配置文件 sudo apt-get purge ...

  6. Cocos2d-x响应android返回键

    开启按键按键监听 setKeypadEnabled(true); 重写监听事件函数 virtual void keyBackClicked(); 如: void BanQiuLayer::keyBac ...

  7. latex表格线的颜色设置(边框添加颜色)

    添加了如下包:边框颜色要用到booktabs, colortbl, 包,下面代码里有一个自定义的颜色tabcolor \usepackage{ctexcap} \usepackage{graphicx ...

  8. MySQL分区技术 (一)

    4:MySQL 分区技术(是mysql 5.1以版本号后開始用->是甲骨文mysql技术团队维护人员以插件形式插入到mysql里面的技术) 眼下,针对海量数据的优化主要有2中方法: 1:大表拆成 ...

  9. mongodb时间戳转换成格式化时间戳

    db.pay_order.find({"id":"5332336532"},{"tradeNo":true,"status&quo ...

  10. EF中的事务处理的初步理解

    http://yanwushu.byethost7.com/?p=87 1. EF对事务进行了封装:context的saveChange()是有事务性的. 2. 依赖多个不同的Context的操作(即 ...