J2SE基础:1.类和对象基础
什么是对象
在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.类和对象基础的更多相关文章
- MOOC C++笔记(二):类和对象基础
第二周:类和对象基础 面向对象程序设计的四个基本特点 抽象.封装.继承.多态. 面向对象程序设计的过程 1.从客观事物抽象出类 抽象出的事物带有成员函数与成员变量(类似于带函数的结构体) 成员变量和成 ...
- 086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结
086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结 本文知识点:面向对象基础(类和对象)总结 说明 ...
- JAVA 类和对象基础知识详解
/*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 1978702969@qq.com*/ 和C++一样,JAVA也是一门面向对象的语言,其基础和核心是类和对象.而面向对象的思想是来源与显示生 ...
- java 类与对象基础整理
之前学习javaSE的时候,没有针对性地对对类与对象的一些基础进行整理,下面这些内容是笔记内容整理后的,希望以后自己可以通过这些博客时常复习! 一.类and对象的基础 类似于类的生命啊,类与对象的关系 ...
- java类与对象基础篇
java面向对象基础篇 面向对象程序设计(Object Oriented Proframming ,OOP) 面向对象的本质是:以类的方式组织代码,以对象的方式组织(封装)数据. 面向对象的核心思想是 ...
- ObjectiveC1基础代码——类和对象
// // main.m // ObjectiveC1 // // Created by scjy on 15/10/30. // Copyright © 2015年 lizhipeng. A ...
- C++_基础_类和对象
内容: (1)引用 (2)类型转换 (3)C++社区给C程序员的建议 (4)面向对象编程的概念 (5)类和对象 (6)构造函数 (7)初始化列表及其必要性 1.引用1.1 指针和引用的使用说明(1)指 ...
- java基础知识—类和对象
1.对象的特征---类的属性 每个对象的每个属性都有特定的值 对象的操作---类的方法 2.封装 对象同时具有属性和方法两项属性. 对象的属性和方法同时被封装在一起,共同体现事物的特性,二者相辅相成, ...
- PHP -- 类和对象基础入门
本文目录: 创建简单类和对象 继承 抽象类 接口 构造方法 析构函数 1. 创建简单类 创建一个People的类,在这里有四个要点说明一下: 第一个是在PHP中,访问属性 ...
随机推荐
- VC 获取指定文件夹路径的方法小结
VC获取指定文件夹路径 flyfish 2010-3-5 一 使用Shell函数 1 获取应用程序的安装路径 TCHAR buf[_MAX_PATH];SHGetSpecialFolderPath( ...
- maven的pom 提示错误 Failure to transfer com.thoughtworks.xstream:xstream:jar:
pom文件提示错误,信息如下 Description Resource Path Location TypeFailure to transfer com.thoughtwor ...
- Ogre嵌入MFC傻瓜全然教程(三)
经过前两两篇博文的解说.我们已经完毕了渲染工作,但仅仅是渲染而没有交互性,本篇博文我们就来加上事件的处理方法. 首先我们须要为项目加入一个帧监听类:CMyFrameListener,为了直观,在这直接 ...
- NEU 1173: 这是物理学的奇迹!! 分解质数
1173: 这是物理学的奇迹!! 题目描述 goagain在做物理电学实验时需要一个2Ω的电阻,但是他发现他的实验台上只剩下了3Ω,4Ω,5Ω,6Ω的电阻若干,于是goagain把两个4Ω的电阻并联起 ...
- CDOJ 1221 Ancient Go
题目链接:http://acm.uestc.edu.cn/#/problem/show/1221 题目分类:dfs 代码: #include<bits/stdc++.h> using na ...
- wamp环境中mysql更改root密码
集成的wamp环境命令不好使,在phpmyadmin中更改密码 权限——root用户修改,执行 然后,你会发现你不能用phpmyadmin登陆了修改下phpmyadmin里面对应的密码就可以了将php ...
- Github干货系列:C++资源集合-
Awesome CPP,这又是一个 Awesome XXX 系列的资源整理,由 fffaraz 发起和维护.内容包括:标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等. ...
- [Android学习笔记]jackson库的使用
Jackson库一般用于序列化和反序列化操作,通常会涉及到的操作是: 1. Java Object -> Json String 2. Java Object -> Xml String ...
- Kaggle—Digit Recognizer竞赛
Digit Recognizer 手写体数字识别 MNIST数据集 本赛 train 42000样例 test 28000样例,原始MNIST是 train 60000 test 10000 我分别 ...
- linux根据部署jenkins
1. Jenkins 下载 Jenkins 下载网址:http://jenkins-ci.org/ 2. Jenkins 安装 (1) 安装JDK JDK下载:http://www.oracle.co ...