public class Main {
/*
* 面向对象的基本概念,包括:
类
实例
方法
面向对象的实现方式,包括:
继承
多态
Java语言本身提供的机制,包括:
package
classpath
jar
以及Java标准库提供的核心类,包括:
字符串
包装类型
JavaBean
枚举
常用工具类
* */
public static void main(String[] args){
Person p = new Person();
p.setName("Scout");
/* p.age = "2";
p.sex ="男";*/
System.out.println(p.getName());
boolean bool = p instanceof Person ? true :false;//判断一个类是不是一个对象的实例
System.out.println(bool);
}
}
class Person {
/*
public String name;
public String age;
public String sex;
*///如果直接用public暴露给外部的话会破坏封装性,造成逻辑混乱所以用private来进行修饰,用方法来进行赋值和传递值
private String name;
private String age;
private String sex;
public void setName(String name) {
this.name = name;
}
public String getName() {
System.out.println(this);
return this.name;
}
//this是一直指向当前实例.通过this.字段可以直接访问到字段如果局部变量与字段重名,就必须用this了,一般为了减少命名都会
//使用到this.字段,然后set和get的名字和字段同名
//方法参数 方法参数可以定义0到理论无限的参数,传递时必须严格按照参数的类型传递
//可变参数 可以参数就是 类型...
/*
* public string setName(String... name){
* }
*p.setName("张三“,"张四","张五“)
* 完全可以把可以变阐述改为String []类型
* public string setName(String... name){
* }
* p.setName(new String[]{"张三”,"张四“,"张五“})
可变参数调用方可以传入null但是可变参数可以保证无法传入,接收的实际值是空数组而不是null
* */
/*
* 方法重载:同名方法不同参数个数和参数类型(overload)
* 目的:共同目的的方法同名有利于记住调用起来更方便
*构造方法:Person p = new Person()
*想要在new一个对象的时候直接传递传输就需要构造函数,类自己有一个空的默认构造函数,如果定义了就没有了
* 想要同时存在就都要自己定义
*public class Person{
* Protected String name ;
* Protecter String sex ;
* public Person(){//默认构造函数
* }
* public class Person(name,sex){
* this.name = name;
* thsi.sex = sex;
* }
* 构造函数也可以进行重载
* }
*
* */
}