1 2 3 4 5 6 | class Student { String name; int age; public void study() {} } |
---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Student { private String name; private int age; public void setName(String n) { name = n; } public String getName() { return name; } public void setAge(int a) { age = a; } public int getAge() { return age; } public void study() {} } |
---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | class Student { private String name; private int age; public void setName(String name) {//局部变量 this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println("姓名是:"+name+", 年龄是:"+age); } public void study() { System.out.println("学生爱学习"); } public void eat() { System.out.println("学生要吃饭"); } public void sleep() { System.out.println("学生想睡觉"); } } class StudentTest { public static void main(String[] args) { Student s = new Student(); s.setName("林青霞"); s.setAge(28); s.show(); s.study(); s.eat(); s.sleep(); System.out.println("姓名是:"+s.getName()); System.out.println("年龄是:"+s.getAge()); } } |
---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | class Student { private String name; private int age; public Student() {} public Student(String name,int age) {//构造方法 this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void show() { System.out.println("姓名是:"+name+", 年龄是:"+age); } } class StudentTest { public static void main(String[] args) { //无参+setXxx() Student s = new Student(); s.setName("林青霞"); s.setAge(28); s.show(); //带参 Student ss = new Student("张曼玉",20); ss.show(); } } |
---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | /* 班级编号应该是被班级每个人都共享的,所以定义一个就应该可以了。 而姓名和年龄,每个人应该是不一样的,所以,每个对象,都应该定义自己的。 在 java 中,用什么来表示成员变量是被共享的呢?static */ class Student { //姓名 String name; //年龄 int age; //班级编号 //String classNumber; static String classNumber; public Student(String name,int age) { this.name = name; this.age = age; } public Student(String name,int age,String classNumber) { this.name = name; this.age = age; this.classNumber = classNumber; } public void show() { System.out.println(name+"---"+age+"---"+classNumber); } } class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s1 = new Student("林青霞",28,"20150306"); s1.show(); /* Student s2 = new Student("马云",35,"20150306"); s2.show(); Student s3 = new Student("马化腾",33,"20150306"); s3.show(); */ Student s2 = new Student("马云",35); s2.show(); Student s3 = new Student("马化腾",33); s3.show(); } } |
---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | /* static: 静态关键字。 作用: 可以修饰成员变量和成员方法 特点: A: 随着类的加载而加载 B: 优先于对象存在 C: 被类的所有对象共享 这也是我们判断是否使用静态关键字的条件 饮水机:可以被静态修饰 水杯:不可以被静态修饰 D: 可以通过类名调用 我们的调用既可以是对象,还可以是类名 */ class Student { public void show() { System.out.println("show"); } public static void show2() { System.out.println("show2"); } } class StudentDemo2 { public static void main(String[] args) { Student s = new Student(); s.show(); s.show2(); Student.show2(); //Student.show();  } } |
---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | /* static 的注意事项: A: 在静态方法中是没有 this 关键字的 因为静态是随着类的加载而加载,优先于对象而存在。而 this 是随着对象的创建而存在。 先进内存的, 不能访问后进内存的;而后进内存的,可以访问先进内存的。 B: 静态只能访问静态。 非静态的成员方法: 可以访问静态成员变量,非静态成员变量,静态成员方法,非静态成员方法 静态的成员方法: 只能访问静态的成员变量,静态的成员方法 */ /* class Student { private String name; public static void setName(String name) {//  静态方法不能用 this this.name = name; } public void show() { System.out.println(name); } }*/ class Demo { int x = 10; static int y = 20; public void show() { System.out.println(x); System.out.println(y); } public static void show2() { //System.out.println(x);  System.out.println(y);//√ } public void show3() { show(); show2(); } public static void show4() { //show(); 只能访问静态的成员方法 show2(); } } class StudentDemo3 { public static void main(String[] args) { //Student.setName("林青霞"); } } |
---|
1 | public static void main(String[] args) |
---|
public: 访问权限修饰符,表示最大的访问权限,被 jvm 调用,所有权限要够大。 static: 被 jvm 调用,不用创建对象,直接类名访问 void: 被 jvm 调用,不需要给 jvm 返回值 main: 一个通用的名称,虽然不是关键字,但是被 jvm 识别 String[] args: 早期出现是为了接收键盘录入数据的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | /*求和*/ class Demo { private int x; private int y; public Demo() {} public Demo(int x,int y) { this.x = x; this.y = y; } public void setX(int x) { this.x = x; } public int getX() { return x; } public void setY(int y) { this.y = y; } public int getY() { return y; } //成员变量已经有 x,y 了。这里就没有必要在定义了 /* public int sum(int x,int y) { return x + y; } */ public int sum() { return x + y; } } class Test { public static void main(String[] args) { Demo d = new Demo(); d.setX(10); d.setY(20); int result = d.sum(); System.out.println(result); } } |
---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /*求和*/ class Demo { public int sum(int x,int y) { return x + y; } } class Test2 { public static void main(String[] args) { Demo d = new Demo(); int result = d.sum(10,20); System.out.println(result); } } |
---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | /* 定义一个员工类,自己分析出几个成员, 然后给出成员变量,构造方法,getXxx()/setXxx() 方法, 以及一个显示所有成员信息的方法。并测试。 Employee: 成员变量:员工编号,姓名,职位 构造方法:无参,带参 成员方法:getXxx()/setXxx() 方法,show() */ class Employee { private String eid; private String name; private String job; public Employee() {} public Employee(String eid,String name,String job) { this.eid = eid; this.name = name; this.job = job; } public void setEid(String eid) { this.eid = eid; } public String getEid() { return eid; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setJob(String job) { this.job = job; } public String getJob() { return job; } public void show() { System.out.println("员工编号是:"+eid+", 姓名是:"+name+", 职位是:"+job); } } class EmployeeDemo { public static void main(String[] args) { //无参 Employee e = new Employee(); e.setEid("itcast007"); e.setName("周星驰"); e.setJob("高级工程师"); e.show(); //带参 Employee e2 = new Employee("itcast003","刘德华","挖掘机工程师"); e2.show(); } } |
---|
关键词 | 同一个类 | 同一个包 | 不同包中的子类 | 不同包中的非子类 |
---|---|---|---|---|
private | √ | |||
default | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |