Java学习2

本周学习:类与对象

通过看b站和csdn学习的类与对象,还是和c++有些不一样的,刚使用起来感觉有点别扭。
那就说下吧

类的定义:

首先说,类是Java程序的基本组成单位。

修饰符 class 类名 
{
//成员变量
数据类型 变量1;
数据类型 变量2;
...
//成员方法
方法1;
方法2;
};

这里的成员方法就是c++中的成员函数,与其不同的是c++是写一个public 然后在下面写函数时都是公有的,是不用在每个函数前面写上public的,但这在Java里貌似行不通,在Java里需要在每个函数前都加上public private protected来修饰的。
protected的作用就是数据成员或者成员方法仅类内和子类可见。其他两个容易理解。

就像这样

package LWX.JAVA;

import java.util.Scanner;
public class Test1 {
    public static void main(String[] args) {
        Person per1= new Person();
        Scanner sc = new Scanner(System.in);
        per1.showName();
    }
}

class Person {
    String name;
    int age;
    public  void showName () {
        System.out.print(name);
    }
    public int getAge() {
        return age;
    }
}

这里我也是调试了很久,因为和c++不太一样。Java里就是以类为基本单位的,一般的,我看视频讲解和csdn上,他们是在写一个package里面,不是写在一个文件里,这样方便浏览修改。再提一点,一个Java类里面也可以把多个类写在同一个文件下,但是,重点来了,一个Java类中只能有一个public类,如果还想再定义一个类,在类前面不用加任何修饰,如果是再创建了一个类,就需要在类前加上public,如下

public class Person{
	String name;
	int age;
	public void showName(){
	System.out.print(name);
	}
	public int getAge(){
		return age;
	}
}

在Java类中,如果数据成员没有修饰,则默认该数据成员是公有的,这和c++是不同的,和c++中结构体相似,如果要指定访问权限,在数据成员前加上修饰词即可,如果要定义静态数据成员或者成员方法,在前面加上static即可,这和c++是一样的。
例如

public class Person{
	private String name;
	private int age;
	private static int total;
	public void showName(){
	System.out.print(name);
	}
	public int getAge(){
		return age;
	}
}

数据成员的定义

[修饰符] 数据类型 变量名称 ;
private String name;

成员方法的定义

[修饰符] (返回值类型) <方法名> (参数列表) {
	方法体;
}
public void showName(){
	System.out.print(name);
	}

另外,如果把数据成员设置为private,然后我们如果要对该数据成员赋值与使用的话,我们就需要定义公有的的get函数和set函数。

class Person {
    private  String name;
    int age;
    public  void showName () {
        System.out.print(name);
    }
    public int getAge() {
        return age;
    }
    public void setName(String name){
        this.name=name;
    }
    public String getName(){
        return name;
    }
}

get函数和set函数后的名称的第一个字母要大写.(注意在写set函数的时候形参时,前面写上变量类型,我一开始忘写了,找了很久才发现)
还有就是,为了写完代码方便查看,我们写set函数时的形参往往与数据成员同名,这时候如果不用this关键字的话,只是写上public void setName(String name){ name=name; }的话,程序就会调用两次局部的name,也就相当于没赋值,最后输出的时候就返回初始值null。所以就要用到this关键字,这里好像不能和c++一样,叫this指针,因为在Java里是没有指针的。

类的构造方法

就是c++中的构造函数,所以肯定是公有的了

public 类名称(参数列表){
	方法体;
}
public Person(String name,int age){
   this.name=name;
   this.age=age;
}

对象的创建与使用

1.对象的声明

类名称 对象名;
Perosn per1;

2.对象实例化

对象名 = new 类的构造方法(实参列表);
per1=new Person();

当然,我们也可以同时声明与实例化

类名称 对象名 = new 类的构造方法(实参列表);
Person per1=new Person();

3.对象的使用

对象名.属性;
对象名.成员方法();
per1.name;
per1.showName();

关于类与对象就这些吧,还是与c++有所区别的,初学java,还挺新奇的,目前的话学习还是比较容易的,因为有c++的基础,而且这周学习的和这学期c++学的差不多,比较容易理解。另外,关于java中的package与import,目前只是看了,还没实际操作,下周弄懂了再写!路还有很长哦!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值