1. 封装
属性,也叫字段,成员变量
行为: 方法,功能
成员变量有默认值:int 0 ; String null ; boolean false;
*
封装: 封装属性跟实现细节,仅对外提供公共的方法进行访问。
封装属性。
封装方法。
封装构造函数。
*
关键字 对象的 什么什么的 哪个对象调用,就代表哪个对象。
*
*
* return:
返回啥类型,void就变成啥类型。
返回傻子 ,函数就是傻子。
/**
* 这个类主要讲述封装
* @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
* }
注意:
构造方法没有静态和非静态之分
构造方法没有void也就是说没有返回值类型
没有return
构造函数名必须跟类名一致。
*
构造函数的特点:
创建对象就是调用构造函数
当一个构造函数都没有的时候,jvm会自动创建空参数的构造函数。
如果有构造函数的时候,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就只能调用成员
*
特点:
调用属性,也可以调用行为。
调用构造函数。必须是第一行。
不能跟static共存。
*
*
成员:
成员变量:字段,属性
成员函数:行为,功能,方法
*
问题:
对象能调用局部变量吗?不能调用局部变量
对象可以调用成员(成员变量和成员函数)
/**
* 这个类是讲述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
: 关键字 静态的意思
修饰:
修饰成员: 成员变量 和成员函数
*
特点:
静态函数只能调用静态成员。 非静态函数可以调用静态函数也可以调用非静态函数。
静态成员可以直接被类名调用,也可以被对象调用。
非静态成员只能被对象调用,不能被类名调用。
修饰成员是被共享的。
是随着类的加载而加载。
不能跟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
面向对象的三大特性: 封装,继承,多态
继承的格式:
父类{}
子类 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{
}