Java构造方法与面向对象练习
一、构造方法概述
1、构造方法概述和作用
是为了创建对象,给对象中的成员进行初始化。
2、构造方法格式特点
(1)方法名和类名一样
(2)没有返回值类型,连void都没有
(3)没有具体的返回值
3、构造方法的注意事项
(1)一般情况下我们没有给出,系统会默认提供一个空参构造。
(2)若是我们给出了有参构造,系统将不会再提供无参构造,若还是需要无参构造,则需要你自己手动给出。
二、面向对象标准学生类
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
测试类
public class Mytest {
public static void main(String[] args) {
Student student=new Student();
student.setName("李明");
student.setAge(22);
String name=student.getName();
int age=student.getAge();
System.out.println(name);
System.out.println(age);
}
}
三、面向对象长方形案列
public class Rectangle {
private int chang;
private int kuan;
public Rectangle() {
}
public Rectangle(int chang, int kuan) {
this.chang = chang;
this.kuan = kuan;
}
public int getArea() {
return this.chang * this.kuan;
}
public int getLength() {
return (chang+kuan)*2;
}
public int getChang() {
return chang;
}
public void setChang(int chang) {
this.chang = chang;
}
public int getKuan() {
return kuan;
}
public void setKuan(int kuan) {
this.kuan = kuan;
}
}
测试类
public class Mytest {
public static void main(String[] args) {
Rectangle rectangle = new Rectangle();
rectangle.setChang(5);
rectangle.setKuan(8);
System.out.println(rectangle.getArea());
System.out.println(rectangle.getLength());
System.out.println("******************************");
Rectangle rectangle1 = new Rectangle(6, 9);
System.out.println(rectangle1.getArea());
System.out.println(rectangle1.getLength());
}
}
四、static关键字
``1、内存图示例:
2、特点
(1)随着类的加载而加载
(2)优先于对象而存在
(3)它是共享的,可以被类的所以对象共享
(4)static 可以修饰成员变量,可以修饰成员方法。修饰成员变量,此变量为共享变量,可以被该类的所有对象所共享。
被静态所修饰的方法,在方法内部,只能访问被静态所修饰的成员。不能访问非静态成员,在静态方法里面不能出现this关键字。(因为他是优先于对象而存在的)
(5)被静态所修的成员,使用类,推荐使用类名调用,对象名调用也可以。(不推荐)
五、成员变量与静态变量的区别
1、成员变量随着对象的创建而存在,随着对象的消失而消失
静态变量随着类的加载而存在,随着类的消失而消失,
2、成员变量存储于堆内存
静态变量存储于方法区的静态区
3、成员变量属于对象,也叫做对象变量,实例变量
静态变量属于类,也叫做类变量
4、成员变量只能通过对象名来调用
静态变量推荐使用类名来调用,对象名调用也可以,但不推荐