Java基础学习——面向对象

前言

今天是主要学习内容是Java面向对象的部分。新的一天又开始了,希望抓紧今天的机会呀!!


一、面对对象学习主线

  1. Java类以及类的成员:属性、方法、构造器、代码块、内部类
  2. 面对对象三大特征:封装性、继承性、多态性、(抽象性)
  3. 其他关键字:this、super、final、static、abstract、interface、package、import等

二、面向对象

1.面向对象和面向过程

  • 面向过程:强调的是功能行为,以函数为最小对象,考虑怎么做。
  • 面向对象:将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。

程序员从面向过程的执行者变成了面向对象的指挥者。

2.类和对象

  • 属性:对应类中的成员变量(field)(域、字段)

  • 行为:对应类中的成员方法(函数)(method)

  • 创建对象~实例化对象

面对对象思想落地的实现

- 1.创建类,设计类的成员
- 2.创建类的对象
- 3.通过对象.属性|对象.方法调用对象的结构
//测试类
public class PersonTest {
    public static void main(String[] args){
    //创建Person类的对象
    Person p1= new person();
    //调用对象的结构:属性方法
    p1.name="Tom";//field
    p1.isMale="true";//field
    p1.eat();//method 
   }
//体会类创建的过程:
class Person{
//属性
   String name;
   int age=1;
   bollean isMale;
//方法
  public void eat()
  {
    System.out.println("人可以进食");
    }
}

Java处理机制内存结构

  • :存放对象实例
  • :存储局部变量
  • 方法区:类信息、常量、静态变量、即时编译器编译后的代码
    关于对象的内存解析

类中属性的使用

1.相同点

  • 定义变量的格式

  • 先声明,后使用

  • 变量都有对应的作用域

    2.不同点

  • 在类中声明的位置不同:属性直接定义在类的{}之内;局部变量声明在方法内、方法形参、代码块内、构造器内部的变量。

  • 权限修饰符:属性可以在声明属性时,声明它的权限、使用权限修饰符(public|private|protected|缺省);局部变量不可以使用权限修饰符。

  • 默认初始化值的情况:属性:类的属性,根据其类型、都有默认的初始化值。局部变量:没有默认初始化值,意味着在调用之前一定要显式赋值。特别的,形参调用时复制。

  • 内存中加载的位置:属性加载到堆空间中;(非static)局部变量加载到栈空间中。

方法:描述类具有的功能

  1. 方法的声明:权限修饰符 返回值类型 方法名(形参列表)
  2. 返回值类型:有返回值| 无返回值
  3. 方法名
  4. 形参列表:格式:数据类型 形参1,数据类型2 形参2,…
  5. 方法体
  6. return关键字的使用:
    • 使用范围:使用在方法体中。
    • 作用:结束方法;返回需要的数据。
    • 注意点:return关机子后面不可以声明执行语句。
      7.方法的使用:可以调用当前类的属性和方法

练习

package person;

public class Person {
    String name;
    int age;
    int sex;

    public void stydy(){
        System.out.println("studying");
    }
    public void showAge(){
        System.out.println("age:"+age);
    }
    public int addAge(int i){
        age+=i;
        return age;
    }
}
package person;

import person.Person;

public class personTest {
    public static void main(String[] args) {
        Person p1 = new Person();
        p1.name = "Tom";
        p1.sex = 1;
        p1.age = 18;
        p1.stydy();
        p1.showAge();
        System.out.println("new age:"+p1.addAge(2));

        Person p2 = new Person();
        p2.showAge();

    }
}
package Student;

public class studentTest {
    public static void main(String[] args) {
        Student[] stus=new Student[20];
        for(int i=0;i<stus.length;i++){
            stus[i]=new Student();
            stus[i].number=i+1;
            stus[i].stage=(int)(Math.random()*(6-1+1)+1);
            stus[i].score=(int)(Math.random()*100-0+1);
        }
        for(int i=0;i<stus.length;i++){
            System.out.println(stus[i].number+","+stus[i].stage+","+stus[i].score);
        }
        for(int i=0;i< stus.length;i++){
            if(stus[i].stage==3)
                System.out.println("stage3:"+stus[i].number+","+stus[i].stage+","+stus[i].score);
        }


    }

努力向美好靠近的一天!!(>_<)!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值