美丽小猪Java基础笔记02【小美女程序猿诞生日记 之 java学习笔记】

面向对象思想的概述

· 面向过程:
需要实现一个过程时,每个步骤都要亲力亲为,详细处理每个细节。
· 面向对象:
需要实现一个过程时,不关心具体的步骤,找一个具有该功能的人,帮助完成此功能。

面向过程是:(类似于洗衣服的完整步骤,强调步骤)
运行:要求打印格式为[10,20, 30,40,50]

public class Name{
  public static void main(String[] args){
    int[] array = {10, 20, 30, 40, 50};
    System.out.println("[");
    for(int i = 0; i < array.length; i++){
    //i = 0....4 4是最后一个数字,array[4]就是打破的最后一个数字
    if(i == array.length - 1){
    //第一种情况是少数的那个//
         System.out.println(array[i] + "]");
     }else{
           System.out.println(array[i] + ",");
     }
   }
}

面向对象:(类似于全自动洗衣机,强调对象)

//找一个JDK给我们提供好Array类【JDK】
//其中又一个toString方法,直接把字符串变成想要的形式;
System.out.println(Arrays.toString(array));
出现--->import java.util.Arrays;

面向对象的语言中,包含了三大基本特征,即封装【本章】、继承、多态【以后章节】;

1.2 类和对象【public class】

引言:对象,比如桌子、椅子、同学、老师等,桌椅是办公用品,师生是人类;

· 定义:一组相关属性和行为的集合,是一类事物的模版,使用属性和行为来形容这一类食物。
现实中,描述一类食物:
·· 属性:该事物的状态信息;(名字、体重、颜色)
·· 行为:该事物能做什么;(走、跑、跳)

对象

· 定义:是一类事物的具体体现,对象是类的一个实例,具备该类事物的属性和行为。
· 举例:一只小猫

类和对象的关系

· 类是对一类事物的描述,是抽象的(图纸:属性、功能)
· 对象是对一类事物的实例,是具体的(一个手机:可以被使用的具体对象)
· 类是对象的模版,对象是类的实体。

1.3 类的定义

现实中的图纸 有属性和行为
java中也是如此,类包含:
· 成员变量:对应事物的属性(大小尺寸)
· 成员方法:对应事物的行为(跑跳)

类的定义格式

public class ClassName {
  //成员变量:属性
  //成员方法:行为
}

· 定义类: 定义类的成员,包括成员变量和成员方法。
· 成员变量:和以前定义变量相同,但是位置发生变化,在类中,方法外【变量里面并没有常量 变量可以轮流代表好多次常量】
· 成员方法:和以前定义方法几乎一样,但把static去掉;
· 备注:java class用来创造一个类

举例:

//定义一个类,模拟学生
//属性(成员变量:是什么):姓名 年龄
//String name//姓名; int age;//年龄
//行为(成员方法:能做什么):吃饭 睡觉
//public void eat(){}
public class Student {
   String name;
   int age;
   //性质+名称
   public void eat(){
     System.out.println("吃饭饭")}
   public void study(){
     System.out.println("睡觉觉")}
}

注意事项:

  1. 成员变量直接定义在方法中,在方法外边
  2. 成员方法不要static 关键字
  3. 一般情况下,一个类不能直接使用,需要根据类创建一个对象,才能使用

1.4 对象的创建和使用

一般情况下,一个类不能直接使用,需要根据类创建一个对象,才能使用。

  1. 导包:指出需要使用的类的位置;
    import 包名称.类名称;
    import cn.itcast.day06.demo01.Student;
    对于和当前类属于同一个包的情况,可以省略导包语句不写;

  2. 创建 格式:
    类名称 对象名 = new 类名称();
    Student stu = new Student();

  3. 使用 分为两种情况:
    使用成员变量:对象名.成员变量名
    使用成员方法:对象名.成员方法名(参数)
    (想用谁,就用对象名.谁)

public class Demo02Student{
  public static void main(String[] args){
  //根据student 类 创建了一个stu对象;
    Student stu = new Student();
      System.out.println(stu.name);//null
      System,out.println(stu.age);//0
  //如果没有进行赋值,会有一个默认值
  //赋值:
  stu.name = "小美女";
  stu.age = 18;
  System.out.println(stu.name);
  System,out.println(stu.age);
  stu.eat()
  stu.study()
  }
}

练习:手机

定义一个类,用来模拟事物“手机”

//属性:颜色 大小 价格
//功能:打电话 发短信
public class Phone{
  String color;
  double size;
  double price;
  public void call(String who){
    System.out.println("打电话");
  };
  public void sendMessage(){
    System.out.println("发短信");
  };
}
public class Demo01Phone{
  public static void main(String[] args){
    Phone pho = new Phone();
    pho.color = "粉粉";
    pho.size = 5.5;
    pho.price = 100;
    System.out.println(pho.color);
    System,out.println(pho.color);
    System,out.println(pho.price);
    pho.call(String who:"小帅哥");
    pho.sendMessage();
  }
}

一个对象的内存图(103)

stack里运行main–>对变量重新赋值–>左边对象—>对象地址—>heap堆当中的成员变量—>重新对成员变量赋值—>成员方法–>method area方法区找方法–>进stack把call方法堆在main方法上–>运行此方法—>stack里面main里新量赋值到call方法中

方法区(method area):
有两个类class
Phone.class(
//成员变量
String brand;
double price;
String color;
//成员方法
void call(String who)
void sendMessage()
)

Demo01PhoneOne.class(
main(String[] args)
)
进入栈(Stack)空间,先从main方法开始,
有两个方法
main(String[] args):变量(等号左边的)
一个对象:Phone one
堆(Heap)(素材)
等号右边:new Phone()
存放新的成员变量(方法区当中的成员变量)+赋默认值String= null double=0.0
成员方法 :存放地址

两个对象使用同一方法的内存

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值