Java的类与方法、变量

Java浅滩洗脚

面向对象的概念及类与方法


一、面向对象

面向对象的概述:
面向过程:当需要实现一个功能的时候,每一个步骤都要余力余为,详细处理每一个细节。
面向对象:当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经举要该功能的人,来帮我做事情。
面向对象的三大特征:封装、继承、多态
public class Demo4Face {
    public static void main(String[] args) {
        int[] array={1,2,3,4,5,6};
        //要求输出【1,2,3,4,5,6】
        //面向过程写法
        System.out.print("[");
        for (int i = 0; i < array.length; i++) {
            if(i==array.length-1){
                System.out.print(array[i]+"]");
            }
            else{
                System.out.print(array[i]+",");
            }
        }
        //面向对象写法,直接免去过程
        System.out.println();
        System.out.println(Arrays.toString(array));//调用工具类Arrays实现面向对象
    }
}

面向过程:强调步骤。
面向对象:强调对象

面向对象的三大特征之封装

封装在java当中的体现
1、方法就是一种封装
2、关键字private也是一种封装。

private关键字:
本类当中依然可以随意访问,但是超出本类则不能直接访问。
 其他类可以间接访问:就定义一对Getter/Setter方法
 必须叫 setXXX和getXXX命名规则
 对于getter来说,不能有参数,返回值类型和成员变量对应。
 (对应基本类型中的boolean型,getter一定要要写成isXXX,setter不变)
 对应setter来说,不能有返回值,参数理想和成员变量对应。
 public class Demo10PrivatePerson {
    String name;
    private int age;
    //age本类依然可以任意调用,但其它类需要setter和getter方法
    public void setAge(int ag){
        if(ag>100||ag<0){
            System.out.println("输入年龄有误!");
        }
        else{
            age=ag;
        }

    }
    public int getAge(){
        return age;
    }
    public void personName(String name){
        System.out.println("名字:"+name+",年龄:"+age);
    }
}
public class Demo10PrintPerson {
    public static void main(String[] args) {
        Demo10PrivatePerson pp=new Demo10PrivatePerson();
        pp.setAge(21);//通过private封装年龄,就可以进行年龄数值的筛选
        pp.name="小宇";
        pp.personName(pp.name);
    }
}

二、类和对象

类:是一组相关属性和行为的集合,可以看成是一类事务的模板,使用事务的属性特征和行为特征拉i描述该类事务。
属性:就是事物的状态信息。
行为:就是该事物能够做什么。
列如   类:小猫
      属性:名字、颜色、年龄、体重
	  行为:叫、跑、跳
	  
类:对事物抽象的描述。
对象:一类事物的实列,是具体的。
类是对象的模板,对象是类的实体。

类的定义:
属性:是什么(成员变量)
行为:能做什么(成员方法)


注意:
1、成员方法直接写在类当中,成员方法外
2、成员方法没有static

对象的创建及使用

通常情况下,一个类不能直接使用,需要根据类创建一个对象才能使用
1、导包:也就是指出需要使用的类在什么位置
		import 包名称.类名称;
列如:
import cn.demo.Student;
对于和当前类属于同一个包的情况,可以不写导包语句

2、对象创建:类名称 对象名=new 类名称();
3、使用:分为两种情况 :
	使用成员变量  对象名.成员变量名
	使用成员方法   对象名.成员方法名(参数);

(也就是想用谁就用方法名点谁)

public class Demo5Student {
    public static void main(String[] args) {

        Demo5Student stu = new Demo5Student();
        stu.name="小宇";
        stu.age=5;
        stu.study();
        stu.sleep();
        stu.getName(stu.name);
        stu.getAge(stu.age);
    }
//成员变量

        int age;
        String name;
        //创建对象

        //成员方法
        public void study () {
            System.out.println("学生在学习~");

        }
        public void sleep () {
            System.out.println("学生咋睡觉哦~");
        }
        public void getName (String name){
            System.out.println("学生名字叫:" + name);
        }
        public void getAge(int age){
            System.out.println("学生年龄为:"+age);
        }

}

当一个对象作为参数时,传递到方法当中时,实际上传递进去的是对象的地址值

 public class DemoDaoBao {
    public static void main(String[] args) {
    //创建 TOBao的对象
       ToBao db=new ToBao();
        db.name="小宇";
        db.age=20;
        db.sleep();
        db.study();
        db.getAge(db.age);
        db.getName(db.name);
        method(db);

    }
    //将对象作为参数传递
    public static void method(ToBao print){//普通方法带有Static
        System.out.println(print.name);
		
    }
}

当对象类型作为方法的返回值类型时

public class DemoReturn {
    public static void main(String[] args) {
        ToBao two=getRe();
        System.out.println(two.name);
    }
    public static ToBao getRe(){//返回值类型为对象的数据类型
        ToBao one=new ToBao();
        one.name="小宇";
        return one;//返回对象的地址值

    }
}

局部变量和成员变量的区别

1、定义的位置不一样。*
局部变量:方法的内部
成员变量:在方法的外部,直接写在类当中。
2、作用范围不一样。*
局部变量:只有方法当中可以使用
成员变量:在类当中,整个类都可以通用。
3、默认值不一样。*
局部变量:没有默认值,如果要使用必须手动赋值。
成员变量:没有赋值会有默认值。
 4、内存的位置不一样
 局部变量:栈内存
 成员变量:堆内存
 5、生命周期不一样

类当中的this关键字

this关键字的作用:
当方法的局部变量和类的成员变量重名的时候,根据就近原则,有限使用局部变量
如果需要访问本类中的成员变量,需要使用格式:
	this.成员变量名
通过谁调用的方法,谁就是this;也就是说,this可以指代当前类的对象。

构造方法(专门用来创建对象的方法)

所有我们在通过关键字new创建对象时候,其实就在调用构造方法。
格式:
public 类名称 (参数类型 参数名称)
	{    方法体;
			}
			
注意事项:
1、构造方法的名称必须和类名称一样,大小写也必须一样
2、构造方法不要写返回值类型,包括void都不写
3、构造方法不能return一个具体的返回值
4、如果没有创建构造方法,那么编译器会赠送一个构造方法,没有参数、方法体什么都不做。
5、一旦编写了至少一个构造方法,那么编译器将不再赠送。
6、构造方法也是可以进行重载的(重载overload:方法名称相同,参数不同)
public class Demo12 {
    String name="Tom";
    public static void main(String[] args) {
        
        Demo12 d=new Demo12();
        Demo12 d2=new Demo12(d.name);

    }
    //构造方法重载
    public Demo12(){
        System.out.println("无参构造方法执行了!");
    }
    public Demo12(String name){
        System.out.println("含参构造方法执行了,我是:"+name);
    }

}

定义一个标准的类

定义一个标准的类:
一个标准的类有四个组成部分:
1、所有的成员变量都要使用private关键字修饰
2、为每一个成员变量编写一对Getter/Setter方法
3、编写一个无参构造方法
4、编写一个含参构造方法

这样的标准也叫做Java Bean

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页