潭州Java中级班(day_09)
1. 封装
*属性,也叫字段,成员变量
行为: 方法,功能
* 成员变量有默认值:int 0 ; String null ; boolean false;
*
* 封装: 封装属性跟实现细节,仅对外提供公共的方法进行访问。
* 1.封装属性。
* 2.封装方法。
* 3.封装构造函数。
*
* this:关键字 对象的 什么什么的 哪个对象调用,就代表哪个对象。
*
*
* return:
* 1.return 返回啥类型,void就变成啥类型。
* 2.return 返回傻子 ,函数就是傻子。
/** * 这个类主要讲述封装 * @ClassName: Demo1Private.java * @Description: TODO * @author Jim老师 * @version jdk8.0 * @Date 2018年8月27日 下午8:16:49 无敌是多么的寂寞 男人不能说不行,不行也得行 */ /* * num:属性,也叫字段,成员变量 * 成员变量有默认值:int 0 ; String null ; boolean false; * * 封装: 封装属性跟实现细节,仅对外提供公共的方法进行访问。 * 1.封装属性。 * 2.封装方法。 * 3.封装构造函数。 * * this:关键字 对象的 什么什么的 * * * return: * 1.return 返回啥类型,void就变成啥类型。 * 2.return 返回傻子 ,函数就是傻子。 * */ class Car{ private int num; //轮胎数: 2个 3个 4个 6个 private String color; //颜色: //设置值 public void setNum(int num){ //int a=10; this.num=num; // } //获取值 public int getNum(){ return num; } //设置color的颜色 public void setColor(String color){ this.color=color; } //获取color的颜色 public String getColor(){ return color; } private void show(){ System.out.println("show"); } public void test(){ show(); } } public class Demo1Private { public static void main(String[] args) { Car bmw=new Car(); //创建对象,实例化对象,初始化对象 bmw.setNum(10); int a=bmw.getNum(); System.out.println("a="+a); bmw.setColor("red"); String color=bmw.getColor(); System.out.println("color="+color); Car ff=new Car(); int num2=ff.getNum(); String color2=ff.getColor(); System.out.println("num2="+num2+" color2="+color2); } }
2. 构造函数
* 方法的格式:
* 访问权限修饰符 非静态/静态修饰符 返回值类型 方法名(形式参数类型1 参数名1,。。。。){ }
*
* 构造方法的格式:
* 访问权限修饰符 类名(形式参数类型1 参数名1,形式参数类型2 参数名2){
* //执行的语句
* //没有return
* }
* 注意:
* 1.构造方法没有静态和非静态之分
* 2.构造方法没有void也就是说没有返回值类型
* 3.没有return
* 4.构造函数名必须跟类名一致。
*
* 构造函数的特点:
* 1.创建对象就是调用构造函数
* 2.当一个构造函数都没有的时候,jvm会自动创建空参数的构造函数。
* 3.如果有构造函数的时候,jvm就不会自动添加空参数的构造函数。
/** * 这个类是讲述构造方法 * @ClassName: Demo2Method.java * @Description: TODO * @author Jim老师 * @version jdk8.0 * @Date 2018年8月27日 下午9:06:30 无敌是多么的寂寞 男人不能说不行,不行也得行 */ /* * 方法的格式: * 访问权限修饰符 非静态/静态修饰符 返回值类型 方法名(形式参数类型1 参数名1,。。。。){ } * * 构造方法的格式: * 访问权限修饰符 类名(形式参数类型1 参数名1,形式参数类型2 参数名2){ * //执行的语句 * //没有return * } * 注意: * 1.构造方法没有静态和非静态之分 * 2.构造方法没有void也就是说没有返回值类型 * 3.没有return * 4.构造函数名必须跟类名一致。 * * 构造函数的特点: * 1.创建对象就是调用构造函数 * 2.当一个构造函数都没有的时候,jvm会自动创建空参数的构造函数。 * 3.如果有构造函数的时候,jvm就不会自动添加空参数的构造函数。 * * */ class Person{ public Person(int a){ //int a=0; System.out.println("开宝马X6"); } public Person(String name,int age){//String name=,int age=19; System.out.println(name+"开法拉利"); } public Person(){ System.out.println("开东风悦达起亚"); } } public class Demo2Method { public static void main(String[] args) { Person jim=new Person(0); //创建对象,实例化对象,初始化对象 new Person(); // new Person("玖玖",19); Car2 car=new Car2(12,"黄色"); int num=car.getNum(); String color=car.getColor(); } } class Car2{ private int num; private String color; public Car2(int num,String color){ this.num=num; this.color=color; } public int getNum(){ return num; } public String getColor(){ return color; } }
Day08面向对象(二)
1. This
* this: 关键字 , 什么什么的意思 ,哪个对象调用就代表哪个对象。
* this代表对象。this就只能调用成员
*
* 特点:
* 1.调用属性,也可以调用行为。
* 2.this调用构造函数。必须是第一行。
* 3.this不能跟static共存。
*
*
* 成员:
* 成员变量:字段,属性
* 成员函数:行为,功能,方法
*
* 问题:
* 1.对象能调用局部变量吗?不能调用局部变量
* 对象可以调用成员(成员变量和成员函数)
/** * 这个类是讲述this关键字 * @ClassName: Demo3This.java * @Description: TODO * @author Jim老师 * @version jdk8.0 * @Date 2018年8月27日 下午9:46:33 无敌是多么的寂寞 男人不能说不行,不行也得行 */ /* * this: 关键字 , 什么什么的意思 ,哪个对象调用就代表哪个对象。 * this代表对象。this就只能调用成员 * * 特点: * 1.调用属性,也可以调用行为。 * 2.this调用构造函数。必须是第一行。 * 3.this不能跟static共存。 * * * 成员: * 成员变量:字段,属性 * 成员函数:行为,功能,方法 * * 问题: * 1.对象能调用局部变量吗?不能调用局部变量 * 对象可以调用成员(成员变量和成员函数) * */ class User{ private String name; public void setName(String name) { this.name=name; } private void show(){ System.out.println("show"); } public void show2(){ show(); System.out.println("show2"); } public User(){ this(10); //调用构造函数里面参数为int型的函数。 System.out.println("1.开QQ"); } private User(int a){ System.out.println("2.开奥拓"); } } public class Demo3This { public static void main(String[] args) { User user=new User(); user.show2(); } }
2. Static
* static: 关键字 静态的意思
* 修饰:
* 1.修饰成员: 成员变量 和成员函数
*
* 特点:
* 1.静态函数只能调用静态成员。 非静态函数可以调用静态函数也可以调用非静态函数。
* 2.静态成员可以直接被类名调用,也可以被对象调用。
* 3.非静态成员只能被对象调用,不能被类名调用。
* 4.static修饰成员是被共享的。
* 5.static是随着类的加载而加载。
* 6.static不能跟this共存。
/** * 这个类是讲述static * @ClassName: Demo4Static.java * @Description: TODO * @author Jim老师 * @version jdk8.0 * @Date 2018年8月27日 下午10:11:50 无敌是多么的寂寞 男人不能说不行,不行也得行 */ /* * static: 关键字 静态的意思 * 修饰: * 1.修饰成员: 成员变量 和成员函数 * * 特点: * 1.静态函数只能调用静态成员。 非静态函数可以调用静态函数也可以调用非静态函数。 * 2.静态成员可以直接被类名调用,也可以被对象调用。非静态成员只能被对象调用,不能被类名调用。 * 3.static修饰成员是被共享的。 * 4.static是随着类的加载而加载。 * 5.static不能跟this共存。 */ class News{ static String author; public static void show(){ System.out.println("show"); } } public class Demo4Static { public static void main(String[] args) { // String string=News.author; // News.show(); News news1=new News(); news1.author="Jim"; String author=news1.author; System.out.println("author="+author); News news2=new News(); String author2=news2.author; System.out.println("author2="+author2); // test1(); // System.out.println("title="+title); } static String title; public static void test1(){ System.out.println("test1"); } public void test2(){ test1(); } }
3. 继承extends
* 面向对象的三大特性: 封装,继承,多态
* 继承的格式:
* class 父类{}
* class 子类 extends 父类{}
*
* 子类:也叫孩子类,派生类
* 父类: 也叫超类,基类
/** * 这个类是讲述继承 * @ClassName: Demo5Extends.java * @Description: TODO * @author Jim老师 * @version jdk8.0 * @Date 2018年8月27日 下午10:38:33 无敌是多么的寂寞 男人不能说不行,不行也得行 */ /* * 面向对象的三大特性: 封装,继承,多态 * 继承的格式: * class 父类{} * class 子类 extends 父类{} * * 子类:也叫孩子类,派生类 * 父类: 也叫超类,基类 */ public class Demo5Extends { public static void main(String[] args) { JAVASEStu javaseStu =new JAVASEStu(); javaseStu.study(); } } class Stu{ String name; public void study(){ System.out.println("学习Java!"); } } class JAVASEStu extends Stu{ }
/** * 这个类是讲述继承的特点 * @ClassName: Demo6Extends.java * @Description: TODO * @author Jim老师 * @version jdk8.0 * @Date 2018年8月27日 下午10:44:23 无敌是多么的寂寞 男人不能说不行,不行也得行 */ /* * 继承的特点: * 1.一个父类,可以有多个子类。一个子类只能有一个父类 * 2.类与类之间可以有多层关系。 * 3.Java类只支持单继承,不支持多继承,通过另一个方式体现。 */ public class Demo6Extends { public static void main(String[] args) { } } class Stu6{ String name; public void study(){ System.out.println("学习Java!"); } } class Person6{ } class JAVASEStu6 extends Stu6{ } class ZiJAVASEStu6 extends JAVASEStu6{ } class JSPStu6 extends Stu6{ }