JavaBean 构造方法 this static 关键字

JavaBean的特点:
? private 成员属性
? public成员方法
? 有get/set方法对成员变量进行赋值/取值
? 有空构造方法
符合这些条件的称为标准的JavaBean。


构造方法
[修饰符] 构造方法名(形参列表){
//零到多条可执行语句组成构造方法的执行体
}
class Student{
public Student(){
System.out.println("这是学生类的空参构造方法");
}
}
class Person{
private int id;
public Person(){} //空参构造方法
public Person(int a ){ //重载构造方法,有一个int型的参数
id = a ; //在构造方法中对实例变量赋值
System.out.println("这是一个带参的构造方法");
}
public Person(int a ,int b){
System.out.println("这是一个带两个参数的构造方法");
}
}
构造方法定义时注意事项:
1.构造方法必须和类同名
2.构造方法没有返回值,也不能使用void,一旦加了返回值或者void,那么这个方法就是一个成员方法,而不是构造方法了
class Demo{
//public Demo(){} 如果没有定义任何构造方法的时候,系统自动加上一个无参构造方法
public void show(){
System.out.println("Hello world");
}
}
class Demo{
public Demo(int id){
System.out.println("这是一个带参的构造方法");
}
}
//定义一个员工类,自己分析出几个成员,然后给出成员变量,构造方法,getXxx()/setXxx()方法,
//以及一个显示所有成员信息的方法。并测试。
class Employee{
private String name;
private String employeeId;
private int age;
//构造方法
public Employee(){}
//getXxx()/setXxx()方法
public String getEmployeeId(){
return empoloyeeId;
}
public void setEmployeeId(String employeeId){
this.employeeId=empoloyeeId;
}
public String getName(){
return getName;
}
public void setName(String name){
this.setName= name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
public void show(){
System.out.println("员工编码是:"+getEmployeeId +"姓名是:" +getName+"年龄是:"+getAge);
}
}
class EmployeeTest{
public static void main(String[] args){
//创建对象
Employee e = new Employee();
//给成员变量赋值
e.steEmployeeId("1234");
e.steName("李四");
e.setAge(19);
e.show();
}
}
//定义一个算数类MyMath,提供基本的加减乘除功能,然后进行测试。
import java.util.Scanner{
class MyMath{
public int add(int a ,int b){
return a+b;
}
public int sub(int a ,int b){
return a-b;
}
public int num(int a ,int b){
return a*b;
}
public int div(int a ,int b){
return a/b;
}
}
//测试类
class MyMathTest{
Scanner s = new Scanner(System.in);
System.out.println("输入第一个数");
int a = s.nestInt();
System.out.println("输入第二个数");
int b = s.testInt();
MyMath mm = new MyMath();
System.out.println(mm.add(a,b));
System.out.println(mm.sub(a,b));
System.out.println(mm.mul(a,b));
System.out.println(mm.div(a,b));
}
}

// this 关键字》》》》》》》》》》》》》》》》》》》》》》》》》》》

class Person{
public Person(){}
public void sayHai(){
System.out.println("Hello");
}
public void speak(String content){
// Person p = new Person();
// p.sayHi();
this.syaHi();//sayHi();//调用本对象的另一个方法,可以省略this关键字
System.out.println("我想说的是:" +content);
}
}

class PersonText{
public static void main(String[] args){
Person pp = new Person();
pp.speak();
}
}

//this关键字在构造方法中,对成员变量进行初始化
class Person{
private String name;
private int id;
private String gender;
public Person(){}//空参构造方法
//带有三个参数的构造方法,由于形参和成员变量同名,用this关键字区分
public Person(String name, int id,String gender){
this.name=name;
this.id = id;
this.gender = gander;
}
public Person(String name,int id){
this.name = name;
this.id = id;
}
}
//this关键字是用来指代当前对象的,在构造方法中可以使用this关键字
//*********************************************
有static修饰的成员变量/成员方法,称为类变量/类方法,
没有static修饰的成员变量/成员方法称为实例变量/实例方法

>>>>>>>>>>>静态只能访问静态
class Teacher{
public int num=10;
public static int num2 = 20;
public void show(){
System.out.println(num);//隐含的告诉你访问的是成员变量
System.out.println(this.num)//明确告诉你访问的是成员变量
}
}

静态方法可以访问的是:
1.静态成员变量
2.静态成员方法
非静态方法可以访问的是:
1.静态/非静态成员变量
2.静态/非静态成员方法
总结,简单记:
静态只能访问静态,非静态两种都能访问

对象初始化过程包含两个方面:
构造代码块的执行 + 构造方法的执行

构造代码块:抽取构造方法中共同的语句,在构造方法执行前执行
静态代码块:在类加载时执行一次,用于对类(成员变量)进行初始化

 

 

posted @ 2017-03-29 22:41  北冥有魚其名為鯤  阅读(408)  评论(0编辑  收藏  举报