Java语言之关键字(一)
一、private关键字
1、概念
private关键字是一个权限修饰符,可以对成员变量用private修饰,还可以对成员方法进行修饰,将其变为私有方法,特别是可以提供对应的getXxxx()方法和setXxxx()方法。被private修饰的成员只能在本类中使用,外界无法访问。
2、创建私有成员变量
class Student {
private String name;
private int age;
//提供公共的set方法,让外界调用set方法来给成员变量设置
public void setName(String mingzi) {
name = mingzi;
}
public void setAge(int nianling) {
age = nianling;
}
//提供get方法,让外界通过get方法,来获取成员变量的值
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
二、this关键字
1、概念
this关键字是当前类的对象引用。简单来说,它就代表当前类的一个对象。哪个对象调用这个方法,那么该方法的内部的this就代表这个对象,它重点在于解决局部变量隐藏成员变量的问题。当我们的局部变量和成员变量相同的时候,如果我们不使用this关键字,那么会导致一个问题:就是局部变量隐藏了成员变量的问题。
2、this的应用
class Teacher {
//私有成员变量
private String name;
private int age;
//提供公共的set方法
public void setName(String name) { //成员变量和局部变量重名了
System.out.println("this代表的那个对象" + this);
this.name = name;
//teacher.name=name;
}
public void setAge(int age) { //成员变量和局部变量重名了
System.out.println("this代表的那个对象" + this);
this.age = age;
}
//提供的公共的get方法
public String getName() {
return this.name; //这里的this可加可不加,但建议加上,具有可读性
}
public int getAge() {
return this.age; //这里的this可加可不加,但建议加上,具有可读性
}
}
下面的例子是对以上两个关键字的很简单的应用:
创建自己的电脑类,并创建对象调用类中的成员变量和成员方法。
创建自己的电脑类:
public class Computer {
public String name = ("联想");
public String model;
private double size;
public String type;
public int cpu;
{
System.out.println("电脑的属性和功能如下:");
}
public double getSize() {
return size;
}
public void setSize(double size) {
if (size >= 5 && size < 20) {
this.size = size;
} else {
this.size = 0.0;
System.out.println("您输入的数据不合格!");
}
}
public void study() {
System.out.println("电脑可以查资料");
}
public int counter(int a, int b) {
System.out.println("电脑可用于计算,例如:");
System.out.println("a的值为" + a + "," + "b的值为" + b);
int sum = a + b;
return sum;
}
public void internet() {
System.out.println("电脑可以网上冲浪");
}
public void chat(String name) {
System.out.println("电脑可用于聊天,例如:");
System.out.println("可以和" + name + "聊天");
}
public void sendMsg(String name, String content) {
System.out.println("电脑可用于发消息,例如:");
System.out.println("可以给" + name + "发短信,内容是:" + content);
}
public void playGame() {
System.out.println("电脑可以玩游戏");
}
}
创建对象并调用类中的属性和功能:
public class MyTest {
public static void main(String[] args) {
Computer computer = new Computer();
String name = computer.name;
computer.model="V310";
System.out.println("电脑的名字是:"+name);
System.out.println("电脑的型号是:"+computer.model);
computer.setSize(16.1);
double size= computer.getSize();
System.out.println("电脑的尺寸为:"+size+"寸");
computer.setSize(21.0);
double size2=computer.getSize();
System.out.println("电脑的尺寸为:"+size2+"寸");
int sum=computer.counter(10,10);
System.out.println("a与b的和为:"+sum);
computer.chat("小娟");
computer.sendMsg("小明","在吗");
computer.playGame();
}
输出结果为:
三、static关键字
1、概述
static关键字可修饰成员变量和成员方法,被static所修饰的成员变量,是一个共享变量,被类的所有对象所共享,随时类的加载而加载(随着 .class文件进内存,静态的东西就会加载),优先于对象而存在。比如一个班级的学生共用同一个班级编号,啥专业啥班级。
反言之,如果某个成员变量是被所有对象共享的,那么它就应该定义为静态的。比如饮水机就是被大家所公用的,用静态修饰;而水杯一般是私人用品,不能用静态修饰。
static关键字修饰的成员本身可以通过对象名调用,但建议通过类名调用,因为静态修饰的内容一般我们称其为与类相关的或者是类成员。
2、static关键字的应用
(1)静态变量属于类,所以使用类名直接调用即可。
public class MyTest {
public static void main(String[] args) {
// 静态变量,推荐使用类名直接调用
A.b=500;
int b = A.b;
System.out.println(b);
//a.show();
A.show();//静态方法,推荐使用类名直接调用
}
}
class A{
double a=100;
static int b=1000; //共享变量
public static void show(){
System.out.println("这是一个静态的show方法");
}
}
(2)在静态方法里面,只能访问静态变量,非静态变量访问不到,因为先存在的访问不到后存在。而在非静态方法里面,既可以访问静态的,也可以访问非静态的。
例如下面的一段代码:
public class MyTest {
public static void main(String[] args) {
B a = new B();
a.show();
B.staticShow();
}
}
class B{
int a=10;
static double num=100;
//非静态方法里面,既可以访问静态方法,也可以访问非静态方法
public void show(){
System.out.println("打印a:"+a);
System.out.println("打印num:"+num);
}
//静态方法,只能访问静态方法
public static void staticShow(){
System.out.println("打印num:"+num);
}
public static void test2() {
//this.show();//静态方法里面,不能存在this this代表一个对象,对象还是后来有的,先有的,不能
访问后来有的
staticShow();
}
}
其打印结果为: