java——类与对象

一、类的组成

类由属性和方法组成,就比如cat这个类中,有着猫的各种属性,以及猫的行为

二、类和对象的关系

1.类是抽象的,而对象是具体的

2.类是对象的一个模板

3.我们常常将由类创造一个对象叫做类的实例化,而我们的对象就叫做一个个实例

三、对象在内存中的分布情况

看下图

对象中存放的是地址(栈中)

地址指向的是对象中的各种属性

根据属性的数据类型不同,有些位置存放数据,有些地方存放地址(例如字符串类型)

存放的地址都指向了方法区的常量池这个位置

常量池这个位置就是放着我们所存放的一部分数据。

四、类中的属性

1.属性的名称

属性=成员变量=字段

2.属性的定义

属性的定义格式为

访问修饰符 +数据类型+数据名字

访问修饰符有4种:包括public,protected,默认和private,一共4种

属性的定义可以是任何类型,包括基本数据类型和引用类型

属性要是没有给初始化,那么就是默认值,默认值与之前在数组中的那些相同

五、创建对象和访问属性

1.创建对象

Cat cat=new cat();

2.访问属性与内存分配机制

与数组的赋值一样,两个类之间相互赋值,都是把一个类的地址转给另外一个地址,是一种地址赋值。

六、类和对象的内存分配机制

1.java内存结构分析

1) 栈: 一般存放基本数据类型(局部变量)

2) 堆: 存放对象(Cat cat , 数组等)

3) 方法区:常量池(常量,比如字符串), 类加载信息

2.java创建对象的简单流程分析

Person p = new Person();
p.name = “jack”;
p.age = 10

解答:首先,加载person类的信息,然后在堆里面分配空间,把地址赋值给p,最后在进行赋值

七、成员方法的使用来完善类

1.成员方法的调用机制

解释如上图所示

当执行到方法时,会在栈中开辟一个独立的空间但返回时就会回到调用的地方

2.成员方法的定义

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

{//方法体 语句;

return 返回值; }

1.访问修饰符:略,必须要写,用来决定这个函数在哪里可以使用,是非常重要的

2.访问数据类型

一个方法最多有一个返回值,怎么实现返回多个结果呢,返回一个数组,将你要返回的所有值都存放在这个数组中

如果方法的类型是void,也可以采用只写return来直接截断方法的进行

3.方法名

须要严格遵守驼峰命名法,并且最好一看到就能知道它的意思

4.形参列表

列表中可以没有参数,也可以有多个参数

可以是任意类型的

传入的值都必须要和我们所定义的相等或者是可以互相兼容

实参和形参的顺序,类型,个数都必须完全一致

5.方法体

方法体就是和普通写程序一样,但是要注意的是里面不可以再嵌套定义方法

return语句不是必须的

八、方法的调用

1.在同一个类中,可以直接调用

2.跨类调用,基本准则就是要通过创建对对象来调用,但是这个还是要看方法的权限,这个要在后面才细讲

九、课堂作业

//1) 编写类 AA ,有一个方法:判断一个数是奇数 odd 还是偶数, 返回 boolean
//        2) 根据行、列、字符打印 对应行数和列数的字符,比如:行:4,列:4,字符#,则打印相应的效果
//        老师建议:一定要自己写一遍,不要嫌太简单.
import java.util.Scanner;
public  class Main
{
    public static void main(String[] args)
    {
        Scanner myScanner=new Scanner(System.in);
        int number=myScanner.nextInt();
        AA tool=new AA();
        boolean flag= tool.deter(number);

        int row,arrang;
        char pattern;
        row=myScanner.nextInt();
        arrang=myScanner.nextInt();
       // System.out.print(arrang);

        pattern=myScanner.next().charAt(0);

        System.out.println(flag);
        tool.prin(row,arrang,pattern);

    }

}
class AA
{
     public boolean deter(int number)
     {
         if(number%2==0)  //偶数
         {
             return false;
         }
         else
         {
             return true;
         }
     }

     public void prin(int row,int arrang,char pattern)
     {

        // System.out.print(arrang);
         for(int i=0; i<row;i++)
         {
             for(int j=0;j<arrang;j++)
             {
                 System.out.print(pattern+" ");
             }
             System.out.println();
         }

     }


}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值