Java 标识符- ------- 类、变量和方法的名称称为标识符
必须以字母( A 到 Z 或者 a 到 z )、货币字符( $ )或者下划线( _ )开头,只能这三个开头。
非法标识符的例子: 123abc, -salary
数据类型
(1)8个基本类型,byte,short,int,long,float,double,boolean,char (2)其他的都是引用类型
变量类型
(1)局部变量, 在方法里面声明的。
(2)静态变量, 被static修饰的变量,可以直接通过类名访问
(3)成员变量(实例变量),在类中声明,但是它在方法、构造器或者块外
访问修饰符
- private,只有同一个类里面可以使用
- -缺省,只有同一个包下面的类可以使用。
- protected,同一个包下面的类可以使用,还这其他包下面的子类也可以使用
- public,全部可见
循环控制
- for 循环
break只跳出当前for循环
return是结束当前方法的执行
continue是终止当前循环语句的执行,继续下一条循环语句
java跳出多层循环,需要使用标记。
标记使用方法:
第一步,在 最外面的那个for循环上面,写一个标记语法格式: 标记的名字+冒号
第二步: 在里面的循环,使用 break+标记的名字
package com.base.day12;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
ddd:
for(int i=0;i<3;i++){
System.out.println("i="+i);
lableA:
for(int j=0;j<3;j++){
System.out.println("j="+j);
if(j==1){
//表示跳出三层for循环
break ddd;
}
for(int h=0;h<4;h++){
System.out.println("h="+h);
if(h==3){
//表示跳出二层for循环
break lableA;
}
}
}
}
System.out.println("over!");
}
}
构造方法
(1) 构造方法的方法名字和类名一致
(2)构造方法,没有返回值
(3)一个类,可以有多个构造方法(参数不同)
(4)默认不写的情况下, 所有的类,都一个默认的无参构造方法
package com.base.day12;
public class Cat {
private String name;
private int age;
//无参构造方法
Cat(){
}
//有一个参数的构造方法
Cat(String name){
}
//有两个参数的构造方法
Cat(String name,int age){
}
}
测试
package com.base.day12;
public class Test2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建一个Cat的对象
//格式: 类名 对象名=new 构造方法
Cat a=new Cat();
Cat b=new Cat("小白");
Cat c=new Cat("小黑",12);
}
}
单列模式
一个类,永远只有一个对象。
关键点:(1)把构造方法私有化(在构造方法前面加private)(2) 在类的里面new一次,通过静态方法或者变量,返回这个唯一的对象。
有两种实现方式:饿汉方式(有且只有一次new对象),懒汉方式(最多只有一次new对象)
下面是单线程下,实现代码示例:
饿汉模式
package com.base.day12;
public class Cat {
private String name;
private int age;
//饿汉模式:一开始就创建了一个对象
private static Cat c=new Cat();
public static Cat getCat(){
return c;
}
//无参构造方法
private Cat(){
}
}
懒汉模式
package com.base.day12;
public class Cat2 {
private String name;
private int age;
//懒汉模式:一开始就创建了一个对象
static Cat2 c;
public static Cat2 getCat(){
if(c==null){
c=new Cat2();
}
return c;
}
//无参构造方法
private Cat2(){
}
}
Java 面向对象三大特性
- 封装
- 继承
- 多态
多态: 方法的输入参数类型是父类,运行的时候,根据传入的子类或者接口的实现类不同,产生不同的效果 叫多态。
Java 实现多态有三个必要条件:继承、重写、向上转型(父类引用指向子类对象)
在 Java 中有两种形式可以实现多态。继承和接口
例子:
package com.zz;
/**
* @Description: java类作用描述
* @Author: Bsea
* @CreateDate: 2019/9/15$ 16:25$
*/
public class Parent {
public void printPrice(){
System.out.println("这是父类方法");
}
}
package com.zz;
/**
* @Description: java类作用描述
* @Author: Bsea
* @CreateDate: 2019/9/15$ 16:27$
*/
public class ChildA extends Parent{
public void printPrice(){
System.out.println("这是ChildA方法");
}
}
package com.zz;
/**
* @Description: java类作用描述
* @Author: Bsea
* @CreateDate: 2019/9/15$ 16:27$
*/
public class ChildB extends Parent{
public void printPrice(){
System.out.println("这是ChildB方法");
}
}
最后测试类
package com.zz;
/**
* @Description: java类作用描述
* @Author: Bsea
* @CreateDate: 2019/9/15$ 16:28$
*/
public class Test {
public static void main(String[] args) {
Parent a=new ChildA();
Parent b=new ChildB();
printName(b);
}
static void printName(Parent p){
p.printPrice();
}
}