Day11-JAVA

java语言的特点:

*  1、面向对象

*  面向对象的特点:  封装、继承、多态

*  1、类与对象的关系

*  类:物以类聚 人以群分

*  类:将具有相同特征和行为的事物,进行抽象化形成一类

*  类的特点:

*  1、相同特征和行为

*  2、抽象化的

*  对象: 就是类的一个具体的实例

*  类与对象的关系:

*  1、类是抽象化的,对象是类中具体的实例,每个实例都有该类的特征和行为

*  2、对象是类的具体实例,一个类可以有多个实例,一个对象就属于一个类

*  java中类:

*  1、类的语法:

*  public  class  类名{

*  代码

*  }

*  类的特征:成员变量(属性)

*  类的行为:成员方法(非静态方法)

*  成员变量、成员方法  是属于对象的属性和行为

*  类是一张图纸,规定了该类所有的特征和行为

*  对象根据类这个图纸来实例化的,那么只要是该类的对象,都具有该类的特征和行为.

类的特征:  成员变量

*  类的行为:  成员方法

*  对象怎么创建:

*  对象都是用该类的构造方法创建的

*  什么是构造方法:

*  构造方法就是一个特殊的方法,没有返回值也不需要写void

*  构造方法名必须和类名保持一致

*  语法:

*  public 类名( [参数列表] ){

*  代码;

*  }

*  构造方法的调用方式:

*  只能通过new 关键字调用

*  new 构造方法名();

*  构造方法的作用:

*  1、创建本类的对象

*  2、初始化成员变量

*/

//构造方法----  无参构造

public ClassAndObject02(){

}

//主方法

public static void main(String[] args) {

//创建本类的对象 -- 通过new关键字 调用构造方法

// 对象本身是引用数据类型,需要赋值给该类的一个变量

ClassAndObject02 object = new ClassAndObject02();

System.out.println(object);

构造方法:

* 作用

* 1、创建本类的对象

* 2、初始化成员变量

*

* 成员变量(属性):

*     位置:在类中,方法的外面

*                 数据类型  变量名  [ = 值 ];

*    访问:

*    对象.属性

*   

*    作用范围:整个类中

*   

*    内存位置:

*    内存: 栈 、堆、常量池、本地方法区

*    成员变量存放位置:堆

*  构造方法的特点:

*  1、构造方法名必须和类名保持一致

*  2、构造方法没有返回值,也不需要写void

*  3、一个类中如果没有显示的表明无参构造,虚拟机会默认提供一个无参构造方法

*  4、一个类中定义了有参数的构造方法,虚拟机不再提供无参构造,需要手动添加

*/

//成员变量  -- 对象的属性

String name ;

int age ;

//无参构造  alt + shift + s  选Generate最后一个

public Construct01() {

}

//有参构造

public Construct01(String a , int b ){

name = a;

age = b ;

}

//主方法

public static void main(String[] args) {

//调用无参构造方法

//自己生成相对应类型的变量

//alt + shift + L 自己起变量名

Construct01 c = new Construct01();

System.out.println(c.name); // null

System.out.println(c.age);  // 0

//创建对象

Construct01 con = new Construct01("张三",20);

System.out.println(con.name); // 张三

System.out.println(con.age);  // 20

}

}

值传递:

* 1、参数是基本数据类型

* 2、参数是引用数据类型

*/

/**

* 自己定义的方法

* @param i

*/

public static void m1(int i){

i++;

System.out.println("m1--------->" + i); // 11

}

//主方法

public static void main(String[] args) {

int a = 10 ;

ValuePass01.m1(a);

System.out.println("main------->" + a); //11  10

}

}

* 值传递:

* 1、参数是基本数据类型

* 2、参数是引用数据类型

*/

//属性 -- 成员变量

String name  ;

int age ;

public  static void  m2( ValuePass02 v ){

v.name = "葫芦娃" ;

v.age = 10 ;

//System.out.println("m2 姓名:" + v.name); //葫芦娃

//System.out.println("m2 年龄:" + v.age);  //10

}

public static void main(String[] args) {

ValuePass02 val = new ValuePass02();

System.out.println("main 姓名:" + val.name); //

System.out.println("main 年龄:" + val.age);  //

//调用m2方法

ValuePass02.m2(val);

System.out.println("main 姓名:" + val.name); //葫芦娃

System.out.println("main 年龄:" + val.age);  //10

}

/**

* 作业:

* 声明一个狗类 Dog类 :

* 属性:

* color: 颜色

* size : 大小

* type : 品种

*

* 在main方法中创建两个Dog类的对象

* 对象1 访问属性,输出的是默认值

*

* 对象2访问属性:

* color : 灰色

* size  : 大型犬

* type  : 阿拉斯加雪橇犬

*

* 在自定义的方法中,输出的对象1的属性是:

* color : 白色

* size  : 中型犬

* type  : 西西伯利亚雪橇犬

*/

}

你可能感兴趣的:(Day11-JAVA)