0基础学java之Day12
面向对象
概念
现实生活:
类:抽象的概念,把具有相同特征和操作的事物归为一类
先有实体,再有类的概念
代码世界:
类:抽象的概念,把具有相同属性和方法的对象归为一类
编写顺序:先有类,再创建对象
类的作用:类相当于一个模板,刻画出具有相同属性和方法的对象
类
类中只有属性和方法
属性也叫做全局变量,属性分为成员变量和静态变量
方法分为成员方法和静态方法
创建一个Person类
public class Person {//属性/全局变量String name;char sex;int age;//方法public void eat(){System.out.println("猛吃!");}public void play(){System.out.println("炉石传说真好玩!");}
创建一个测试类
public static void main(String[] args) {//创建对象Person p = new Person();//设置属性p.name="小明";p.sex='男';p.age=18;//获取属性System.out.println(p.name);System.out.println(p.sex);System.out.println(p.age);//调用方法p.eat();p.play();}
构造方法
理解:与类名相同,且没有返回项的方法
注意:无参构造 - 没有有参构造的情况下,系统会自动默认实现
经验:如果你写了有参构造,记得把无参构造也写上
作用:
1.和new一起表示创建对象
2.在创建对象时,对数据进行初始化
需求:创建人类,再去创建人类的对象
public class Person {String name;char sex;int age;//无参构造public Person(){};//有参构造public Person(String name,char sex,int age){this.name=name;this.sex=sex;this.age=age;}public void eat(){System.out.println(this.name+"猛吃");}public void say(){System.out.println(this.name+"说炉石传说真好玩");}
public class Test01 {public static void main(String[] args) {Person p = new Person("小明",'男',23);p.eat();p.say();}
private - 私有化
含义:私有化
作用:
修饰属性:私有化属性,不能让外界使用
修饰方法:私有化方法,不能让外界使用
应用场景:不想让外界访问的属性和方法就用private修饰
public class Person {private String name;private void method01(){this.name="小泽玛利亚";System.out.println(this.name);}public void method02(){this.method01();}
public class Test01 {public static void main(String[] args) {Person p = new Person();p.method02();//通过调用public的方法间接调用private的方法}
封装
步骤:
私有化属性
添加get(获取)/set(设置)方法
好处:外界不可以直接操作属性,必须通过get、set方法操作,可以在get、set方法中做额外的功能
编写一个类的步骤:
1.属性
2.私有化属性
3.无参构造
4.有参构造
5.set/get方法
6.本类独有的方法
public class person {private String name;private char sex;private int age;public person() {}public person(String name, char sex, int age) {super();this.name = name;this.sex = sex;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public char getSex() {return sex;}public void setSex(char sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void eat(){System.out.println(this.name+"猛吃");}public void say(){System.out.println(this.name+"说炉石传说真好玩");}
public static void main(String[] args) {person p = new person();//设置属性p.setName("小明");p.setSex('男');p.setAge(23);//获取属性System.out.println( p.getName());System.out.println( p.getSex());System.out.println( p.getAge());}
this - 本对象
含义:代表本对象,this出现方法里,表示调用该方法的对象
作用:
this.属性:调用本对象的成员变量
this.方法:调用本对象的成员方法
this():调用本对象的构造方法(在一个构造方法中的第一句调用另外一个构造方法)
public class Person {String name;char sex;int age;public Person(){//调用对应的构造方法this("默认姓名",'男',18);}public Person(String name, char sex, int age) {super();this.name = name;this.sex = sex;this.age = age;}public void eat(){System.out.println(this.name+"猛吃");}public void say(){System.out.println(this.name+"说炉石传说真好玩");}public void watch(){System.out.println(this.name+"看欧美大片");}public void all(){//调用前面所有的方法this.eat();this.say();this.watch();}
public class Test01 {public static void main(String[] args) {Person p = new Person();p.all();}