类与对象(以学生信息录入为例)

#面向对象

##类(以学生信息录入为例)

###类的定义

—类别,具有相同的属性、特征、行为方式、功能的一类事物的概念描述,例如”学生类”;
—在JAVA中,是java程序的基本结构,每个程序必须有一个类

###与对象对比

—对象(object)是具体的事物/实例,例如具体某个学生

###关键词:class

   格式:class 类名{ }
pubilic class Student{
}

—类名要求与所在文件名一致,一个.java文件中只写一个类
—类名要求首字母大写,其后的每个单词首字母大写(驼峰命名法)

###类中的内容

(1)程序入口/主方法/主函数

public static void main(String[] args) {
        Student stu=new Student();
        stu.name="hyx";
        stu.age=18;
        stu.stu_id=10086;
        stu.showinf();
        String n=stu.Getname();
        System.out.println(n);

    }    

(2)属性/方法
·即用代码来描述一类事物共有的属性、行为、功能

public void showinf(){
        System.out.println("名字:"+name);
        System.out.println("年龄:"+age);
        System.out.println("学号:"+stu_id);
    }

(3)代码块/构造方法/封装方法/静态属性/静态方法

###定义属性的方法——定义/声明/实用/赋值

*格式:属性数据类型+属性变量名
(1)定义:声明一个变量并赋值;
(2)声明:第一次创建一个新的变量;

public class Student{
int n=0;//定义
String name;//声明
}

(3)使用:单纯的使用不会改变变量的值;
(4)赋值:“=”右边的值传给左边/初始化赋值/重复使用变量赋值
n++;n=n-1;都是先使用再赋值
·属性是直接定义在类中,属性的外层只有一层大括号,外层有多层大括号的都是局部变量,且这个局部变量的使用范围就是当前使用的大括号范围内
*属性如果不赋值就会初始赋值,除了基本数据类型,其他类型声明的默认赋值 null例如

String name;
public void inName(){
        String pwd;
        System.out.println (name);
         }

其中String name是在声明一个属性,而pwd是方法里的局部变量所以如果
直接打印两种变量
直接使用,属性就会打印出null,而pwd就会报错
即*方法的局部变量 不会初始化自动赋值,且局部变量不主动赋值是不能直接使用的

·属性在这个类之外使用,需要先创建对象,然后才会在(这个对象申请的内存里)创建属性并初始化
·每个对象都有自己的一份独立存在的属性
###如何定义方法
*public 返回值类型 方法名(参数列表){方法执行代码}
(1)无参数无返回值类型
void 表示没有返回值 、不需要return 变量/数据

public void showinf(){
        System.out.println("名字:"+name);
        System.out.println("年龄:"+age);
        System.out.println("学号:"+stu_id);
    }

(2)无参数有返回值
返回值类型:
String/int/int[] … 是什么类型 就返回值什么类型的结果

public String Getname(){
        return name;
    }

(3)无返回值 有参数
参数:
*空: 括号就空着
*有: 格式: 参数的数据类型 参数变量名
单个参数 (String name_in)
多个参数 (String name_in,String pwd_in)
*参数变量名,相当于方法的局部变量,只能在方法中直接使用参数变量名
*参数变量名不需要初始化赋值,因为参数变量名是方法在被调用的时候强制要求赋值给括号中
参数的,可以看作方法的数据输入
*返回值可以看作方法的结果输出
*方法就是逻辑运算结构
例如(展示多参数)

public void setInfor(String name,int stu_id){
        name=name;
        this.stu_id=stu_id;
    }

其中变量名出现了重叠,Java是就近原则,所以两个name都是方法的局部变量,
为防止这种情况,可以改变变量名,也可以像stu_id一样加上一个this

//关于调用
public static void main(String[] args) {
    String hyx="hyx"
    stu1.setInfor(hyx,10086)
}

(4)有参数有返回值

public int min(int a,int b){
    if(a<b){
         return a;   
    }
    return b;
}
//调用
main{
     int min=stu.min(18,20);
     System.out.println(min);
}

###类本身也是一种类型:
*类可以定义变量
*类名:对象变量名;// 对象变量名存储的是 new 类名();返回的对象空间的地址

Student stu=new Student();

*类可以创建对象 new 类名();// 在内存中申请一块空间 复制一份属性创建出来 返回地址
String name=new String(“Hello”);
*对象变量名,调用属性是对象的属性
*象变量名调用方法,方法中的属性就是调用者的属性
完整代码

ublic class Student {

    int age;
    int stu_id;
    public void showinf(){
        System.out.println("名字:"+name);
        System.out.println("年龄:"+age);
        System.out.println("学号:"+stu_id);
    }
    public String Getname(){
        return name;
    }
    String name;

    public void setInfor(String name1,int stu_id){
        name =name1;
        this.stu_id=stu_id;

    }
    public int min(int a,int b){
        if(a<b){
            return a;
        }
        return b;
    }

    public static void main(String[] args) {
        Student stu=new Student();
        stu.age=18;
        String hyx="hyx";
        stu.setInfor(hyx,10086);
        System.out.println(stu.name+"    "+stu.stu_id);
        int min=stu.min(18,20);
        System.out.println(min);
        stu.showinf();
    }

输出结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值