java的基本语言元素_JAVA语言的基本元素:类和对象

面向对象的核心概念

类(Class)和对象(Object)是面向对象的核心概念

类是对一类事物的描述,是抽象的,概念上的定义。

对象是实际存在的该类事物的每个个体,因而也称为对象。

“万事万物皆对象”。

设计类其实就是设计类的成员

类的简单及创建调用

package com.chenxi.java;

/*

一、设计类,其实就是设计类的成员

属性=(等于)成员变量=(等于)field=(等于)域、字段

方法=成员方法=函数=method

*/

public class OOPTest {

public static void main(String[] age){

Person p1 = new Person();//创建类的对象,实例化一个类

//调用对象结构;属性与方法

//调用属性

p1.name = "tom";//调用赋值

p1.isMale=true;//调用赋值

System.out.println(p1.name);//调用打印输出

//调用方法

p1.eat();

p1.sleep();

p1.talk("chinese");

}

}

//创建类

class Person{

//类的属性:对应类中的成员变量

String name;

int age=1;

boolean isMale;

//类的方法: 对应类中成员方法

public void eat(){

System.out.println("人可以吃饭");

}

public void sleep(){

System.out.println("人可以休息");

}

public void talk(String language){

System.out.println("人可以说话"+language);

}

}

如果创建一个类的多个人对象,则每个对象都独立的拥有这个类的属性。

package com.chenxi.java;

/*

一、设计类,其实就是设计类的成员

属性=(等于)成员变量=(等于)field=(等于)域、字段

方法=成员方法=函数=method

二、类和对象的使用(面向对象的思想)

1.创建类,设计类的成员

2.创建类的成员

3.通过"对象.属性"或者"对象.方法()"调用对象的结构

三、如果创建一个类的多个对象,则每个对象都独立拥有一套类的属性。(非static的)

意味着如果修改一个对象的属性a。则不影响另外一个对象属性a的值

*/

public class OOPTest {

public static void main(String[] age){

Person p1 = new Person();//创建类的对象,实例化一个类

//调用对象结构;属性与方法

//调用属性

p1.name = "tom";//调用赋值

p1.isMale=true;//调用赋值

System.out.println(p1.name);//调用打印输出

//调用方法

p1.eat();

p1.sleep();

p1.talk("chinese");

//***************************

Person p2 = new Person();

System.out.println(p2.name); //输出null;有默认初始化值

Person p3 = p1;//将p1对象保存的对象地址值复制给p3,p1与p3指向同一个地址值

System.out.println(p3.name);//输出p3的name属性值所以也是tom

p3.age = 3;//修改p3属性age值其实就是修改p1属性age的值,因为地址空间相同

System.out.println(p1.age);//打印p1属性age的值所以是3

}

}

//创建类

class Person{

//类的属性:对应类中的成员变量

String name;

int age=1;

boolean isMale;

//类的方法: 对应类中成员方法

public void eat(){

String food ="烙饼";//局部变量

System.out.println("人可以吃饭");

}

public void sleep(){

System.out.println("人可以休息");

}

public void talk(String language){//局部变量

System.out.println("人可以说话"+language);

}

}

测试

tom

人可以吃饭

人可以休息

人可以说话chinese

null

tom

3

对象创建和使用的内存解析

堆(Heap),此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。

通常所说的栈(Stack),是指虚拟机栈。虚拟机栈用于存储局部变量等。局部变量表存放了编译期可知长度的各种基本数据类型(boolean、byte、char 、 short 、 int 、 float 、 long 、double)、对象引用(reference类型,它不等同于对象本身,是对象在堆内存的首地址)。 方法执行完,自动释放

方法区(Method Area),用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

类中属性的使用

属性(成员变量) VS 局部变量

1.相同点

1.1定义变量的格式  :数据类型 变量名 = 变量值

1.2 先声明,后使用

1.3 变量都有其作用域

2.不同点

2.1 在类中声明的位置的不同

属性:直接定义在类的一对{}内

局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量

2.2    关于权限修饰符的不同

属性: 可以在声明属性时,指明其权限,使用权限修饰符

常用的权限修饰符有:private、public、缺省、protected----》封装性

局部变量不可以使用修饰符

2.3默认初始化值

属性:类的属性根据其类型都有默认初始化值

整型(byte、short、int、long):0

浮点型(float、double):0.0

字符型(char): 0(或‘\u0000’)

布尔型(boolean):false

引用数据类型(类、数组、接口):null

局部变量: 没有初始化值;调用之前一定要赋值;特别的形参在调用时赋值即可

内存中加载的位置不同

属性:加载到堆空间中(非static)

局部变量:加载到栈空间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值