Java基础语法(2)

一、类和对象

1、类
“你是哪一类人啊?”这里的类(class)是一种抽象概念,好人、坏人、男人、女人、外星人等
再比如,笔记本电脑类可以划分超薄本、全能本、游戏本、商务本等,但具体是哪个型号的电脑得指明一个对象

写程序时每次会新建一个class文件,就像c语言.c文件一样,但记得文件名大写

2、对象

对象就是类的实例化(把抽象变为具体)

eg:“你果然是吉林跑男啊!”这里的(你)不知道是谁,但是把(你)换成(赵三金)就是具体到某一个对象

	//笔记本是类名,游戏本是实例化对象的名称
	//等式右边new 关键字是创建对象的方法,后加()
	笔记本 游戏本 = new 笔记本 ();
	//Scanner这个类是从键盘里输入数据
	//括号中System.in固定用法
    Scanner sc=new Scanner(System.in);

二、类成员变量和方法

1、类

一个类中存在着属性和方法,属性也叫做成员变量,方法类似于C语言当中的函数

eg:人,人的属性有眼睛、鼻子、耳朵等;方法(行为)有唱跳rap、行走、跑步、吃饭睡觉等

public class Animal {
    //动物名称字符串
    String animalName;
    //动物年龄整型
    int animalAge;
    //动物方法speak
    void speak(){
        System.out.println("我是一只动物");
    }
}

2、对象调用类的属性和方法

新建一个class文件,此时实例化一个Animal类下的Cat猫对象,想让Cat调用Animal的属性和方法,只需Cat .( 属性 / 方法 )
Obj( 对象名 ).( 属性 / 方法 )

可以看到前面三栏东西都是我们自定义的,调用speak()方法后,运行结果为Animal中speak里输出的话(“我是一只动物”)
在这里插入图片描述
同样的,cat调用Animal的属性,说“我是一只动物,我是一只猫,今年8岁了”

public class Demo_2 {
    public static void main(String[] args) {
        Animal cat=new Animal();
        cat.speak();
        cat.animalName="猫";
        cat.animalAge=8;
        System.out.println("我是一只"+cat.animalName+",今年我"+cat.animalAge+"岁了!");
    }
}

运行结果

在这里插入图片描述
3、构造方法

构造方法属于方法中一种,但其方法名与类名相同
其实当new 一个Animal()时,就是在使用构造方法,这也说明了类当中存在一个默认无参数的构造方法,只要我们对原来默认的构造方法进行重写,那么new Animal()就会报错了

Animal类:

 Animal(String name,int age){
        name=animalName;
        age=animalAge;
    }

我们会发现在主程序中报错

在这里插入图片描述
解决办法:
①如果就是要创建无参的对象,在Animal类中将默认无参数的再写一遍
②根据重写的构造方法,创建时给予变量
我们使用办法②,目的也就是为了在创建对象时就把这个动物的名字和年龄给它赋值

		Animal cat=new Animal("猫",8);
        Animal dog=new Animal("狗",10);

4、成员变量和局部变量

成员变量:类中的属性变量
局部变量:类中方法的变量

局部变量不可以被static关键字修饰

三、this关键字

1、this.变量名
在上述3、构造方法中的Animal类里,形参中age=animalAge这样写过于繁冗
于是我们可以修改为

 Animal(String name,int age){
        this.name=name;
        this.age=age;
    }

this指向当前对象中的name、age
表示为当前类的成员变量name赋值为形参中的name,age同理

2、this(参数)

调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。

在这里插入图片描述

四、封装

1、private关键字

面向对象三大特征:继承、封装、多态

被private修饰的字段就不能被其他人访问了,就像宿舍拉上床帘,只想美美的睡上一觉

在这里插入图片描述
我们发现这样写,在主程序中就无法使用这三个字段了
换言之:谁都无法访问你,那么你的存在是不是有些多余了。所以一般对封装起来的成员变量,我们会设置get和set方法(留口子),get就是可以获取到这个封装的成员变量,set就是可以修改它。

	//获取动物年龄
	public int getAnimalAge() {
        return animalAge;
    }
    //设置动物年龄
    public void setAnimalAge(int animalAge) {
        this.animalAge = animalAge;
    }
    //获取动物姓名
    public String getAnimalName() {
        return animalName;
    }
    //设置动物姓名
    public void setAnimalName(String animalName) {
        this.animalName = animalName;
    }

五、数组

1.数组初始化

和C语言中区别不大,不过[ ]方括号建议写在数组类型的后面,主程序里String[ ] args也是这样写的

		//开辟十个int类型的空间,未赋值
		int[] arr=new int[10];
        arr[0]=1;
        arr[9]=666;
        //初始化赋值
        int[] array={1,2,3,4,5};
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值