zoukankan      html  css  js  c++  java
  • 面向对象

    调用类的普通方法

    class Lear{
    	public static void learn(){
    		System.out.println("we learn java and oracle");
    	}
    }
    
    public class Oij{
    	public static void main(String args[]){
    		//类  对象=new 类();
    		Lear l=new Lear(); //实例化
    		l.learn(); //对象调用方法
    	}
    }
    

      

    实例化类的语法(使用)

    类名 对象=new 类名();

    调用类的属性

    class Person{
    	String name;
    	int age;
    	public String say(){
    		return "姓名:"+name+",年龄:"+age;
    	}
    }
    
    public class Oij{
    	public static void main(String args[]){
    
    		Person per=null;
    		per=new Person();
    		//Person per=new Person(); //实例化
    
    		per.name="sdsd"; //通过对象调用属性
    		per.age=18; //通过对象调用属性
    		String str=per.say(); //通过对象调用方法
    		System.out.println(str);
    	}
    }
    

      

    先给出内存空间的两块区域

    堆内存:保存所有的对象的属性,需要使用new关键字来开辟。

    栈内存:保存堆对象的地址。

     

    堆内存开辟一块空间(对象实例化)

    只要堆内存开辟一块空间,必须使用new关键字。

     

    经典异常:java.lang.NullPointerException

    抛NPE(空指针、空指向)

    引用传递

    class Person{
    	String name;
    	int age;
    	public String say(){
    		return "姓名:"+name+",年龄:"+age;
    	}
    }
    
    public class Oij{
    	public static void main(String args[]){
    		Person p1=new Person();
    		p1.name="xxx";
    		p1.age=23;
    		Person p2=new Person();
    		p2.name="yyy";
    		p2.age=22;
    
    		p2=p1; //地址改变了
    
    		System.out.println(p1.say()); //
    		System.out.println(p2.say()); //
    	}
    }
    

      

    没有栈内存指向的堆内存对象称之为垃圾。GC垃圾回收,不定期的清理

     

    封装(简单的封装)

     

    class Person{
    	private String name; //私有的
    	private int age; //私有的
    	public void setName(String n){
    		name=n;
    	}
    	public void setAge(int a){
    		age=a;
    	}
    	public String say(){
    		return "姓名:"+name+",年龄:"+age;
    	}
    }
    
    public class Oij{
    	public static void main(String args[]){
    		Person p1=new Person();
    		p1.setName("sss"); //p1.name="王世龙";
    		p1.setAge(23);
    		System.out.println(p1.say()); //姓名:王世龙,年龄:23
    	}
    }
    

      

    所有的java开发之中,属性都设置private,要想访问私有属性,必须使用setter、getter方法。

    以name属性为例,setter方法:setName();getter方法:getName()

    还有getInfo()方法,返回所有变量的值。

    构造方法:

    实例化语法:

    (1)类名 (2)对象名=(3)new (4)类名();

    (1)    我们可以定义自己类

    (2)    我们自己起的名字,一般首字母小写

    (3)    一旦new表示在内存开辟空间

    (4)    Person(),构造方法

    构造方法一般用来做一些初始化的工作,他只在实例化的时候被调用一次。

    构造方法及其重载

    public Person(){ //构造方法
    		System.out.println("***");
    	}
    	public Person(String n,int a){ //构造方法重载
    		name=n;
    		age=a;
    	}


    Person p=null;

                  p=new Person("德玛西亚",25);/*主方法调用*/

                  System.out.println(p.getName()+" "+p.getAge());

    匿名对象

    System.out.println(new Person("德玛西亚",25).getInfo());
    

      

    构造方法与普通方法的区别:

           构造方法只在实例化的时候被调用1次。

           普通方法可以被对象调用多次。

    简单Java类

    (1)       首先类名必须有意义,首字母大写,Book,Person,Student,JiaGe。

    (2)       所有属性(变量),必须使用private封装。

    (3)       提供setter、getter方法。setXxx(),getXxx()。

    (4)      可以提供多个构造方法,但是至少保留一个无参构造。(防止重载错误,书写重载后系统不提供无参数方法的隐式启动,必须显式启动。)

    (5)       类中不允许使用输出语出,必须交给主类的主方法来处理。返回信息的方法,方法名暂时定位getInfo();

    构造方法参考Demo

    package Empdept;
    
    class Emp{/*员工数据库*/
    	private int empno;
    	private String ename;
    	private String job;
    	private int mgr;
    	private String hiredate;
    	private double sal;
    	private double comm;
    	private int deptno;
    	
    	public Emp(){};/*构造方法,无参构造用于重载,避免错误,一定要注意构造方法重载时的默认值,系统不自动初始化,特别注意!!!*/
    	public Emp(int empempno,String empename,String empjob,int empmgr,
    		String emphiredate, double empsal,double empcomm,int empdeptno){
    		empno=empempno;
    		ename=empename;
    		job=empjob;
    		mgr=empmgr;
    		hiredate=emphiredate;
    		sal=empsal;
    		comm=empcomm;
    		deptno=empdeptno;
    		
    	}
    	public void setEmpno(int empempno){
    		empno=empempno;
    	}
    	public int getEmpno(){
    		return empno;
    	}
    	public void setEname(String empename){
    		ename=empename;
    	}
    	public String getEname(){
    		return ename;
    	}
    	public void setJob(String empjob){
    		job=empjob;
    	}
    	public String getJob(){
    		return job;
    	}
    	
    	public void setMgr(int empmgr){
    		mgr=empmgr;
    		
    	}
    	public int getMgr(){
    		return mgr;
    	}
    	public void setHiredate(String emphiredate){
    		hiredate=emphiredate;
    	}
    	public String getHiredate(){
    		return hiredate;
    	}
    	public void setSal(Double empsal){
    		sal=empsal;
    	}
    	public double getSal(){
    		return sal;
    	}
    	public void satComm(int empcomm){
    		comm=empcomm;
    	}
    	public double getComm(){
    		return comm;
    	}
    	public void satDeptno(int empdeptno){
    		deptno=empdeptno;
    	}
    	public double getDeptno(){
    		return deptno;
    	}
    	public String getInfo(){
    		return "员工号: " + empno+",员工姓名: "+ ename+",所在部门: "+job+","+ "管理人员号: "+mgr+","
    						+ "入职时间: "+hiredate+",工资: "+sal+","+ "加班费: "+comm+",所在部门编号: "+deptno;
    	}
    	
    	}
    /*部门表*/
    class Dept{
    	private int deptno;
    	private String dname;
    	private String loc;
    	
    	public Dept(int deptdeptno,String deptdname,String deptloc){
    		deptno=deptdeptno;
    		dname=deptdname;
    		loc=deptloc;
    	}
    	
    	public void setDeptno(int deptdeptno){
    		deptno=deptdeptno;
    	}
    	public int getDeptno(){
    		return deptno;
    	}
    	public void setDname(String deptname){
    		dname=deptname;
    	}
    	public String getDname(){
    		return dname;
    	}
    	public void setLoc(String deptloc){
    		loc=deptloc;
    	}
    	public String getLoc(){
    		return loc;
    	}
    	public String getInfo(){
    		return "部门编号: " + deptno+"部门名称: " + dname+"所在地: " +loc;
    	}
    	
    	
    }
    public class Empdept {
    	public static void main(String[] args) {
    	Emp emp=new Emp(01,"乔乔","经理",7903,"1992.02.01",2345.5,200,30);//实例化
    	Dept dept=new Dept(123, "计算机部", "大连");
    	
    	System.out.println(emp.getInfo());
    	System.out.println();
    	System.out.println(dept.getInfo());
    	}
    }
    

      普通方法参考Demo

    package databasesduixiang;//学生数据库
    
    /*学生信息表*/
    class Student {
    	private String studentNo;
    	private String studentName;
    	private String sex;
    	private String birthday;
    	private String department;
    
    	public void setStudentno(String no) {
    
    		studentNo = no;
    	}
    
    	public String getStudentno() {
    		return studentNo;
    	}
    
    	public void setStudentname(String name) {
    		studentName = name;
    	}
    
    	public String getStudentname() {
    		return studentName;
    	}
    
    	public void setSex(String studentsex) {
    		sex = studentsex;
    	}
    
    	public String getSex() {
    		return sex;
    
    	}
    
    	public void setBirthday(String studentbirthday) {
    		birthday = studentbirthday;
    
    	}
    
    	public String getBirthday() {
    		return birthday;
    	}
    
    	public void setDepartment(String studentdepartment) {
    		department = studentdepartment;
    	}
    
    	public String getDepartment() {
    		return department;
    	}
    
    	public String getInfo() {
    
    		return "学号:" + studentNo + ",姓名:" + studentName + ",性别:" + sex + ",出生年月日:" + birthday + "所在系:" + department;
    
    	}
    
    }
    /*学生成绩表*/
    class Sc {
    	private String studentNo;
    	private String courseNo;
    	private double grade;
    
    	public void setStudentno(String studentno) {
    		studentNo = studentno;
    	}
    
    	public String getStudentno() {
    		return studentNo;
    	}
    
    	public void setCourseno(String courseno) {
    		courseNo = courseno;
    	}
    
    	public String getCourseno() {
    		return courseNo;
    	}
    
    	public void setGrade(Double studentgrade) {
    		grade = studentgrade;
    	}
    
    	public double getGrade() {
    		return grade;
    	}
    
    	public String getInfo() {
    		return "学号:" + studentNo + ", 课程号:" + courseNo + ",学生成绩:" + grade;
    	}
    
    }
    /*课程表*/
    class Course {
    	private String courseNo;
    	private String courseName;
    	private String previousNo;
    	private int credit;
    
    	public void setCourseno(String courseno) {
    		courseNo = courseno;
    	}
    
    	public String getCourseno() {
    		return courseNo;
    	}
    
    	public void setCoursename(String coursename) {
    		courseName = coursename;
    	}
    
    	public String getCoursename() {
    		return courseName;
    	}
    
    	public void setPreviousno(String previousno) {
    		previousNo = previousno;
    	}
    
    	public String getPreviousno() {
    		return previousNo;
    	}
    
    	public void setCredit(int studentcredit) {
    		credit = studentcredit;
    	}
    
    	public int getCredit() {
    		return credit;
    	}
    
    	public String getInfo() {
    		return "课程号: " + courseNo + ", 课程名称:" + courseName + ",先修课课程号:" + previousNo + "学分:" + credit;
    	}
    
    }
    
    public class Databasesduixiang {
    	public static void main(String[] args) {
    		Student student = new Student();
    		Sc sc = new Sc();
    		Course course = new Course();//实例化
    
    		student.setStudentno("123");
    		student.getStudentno();
    		student.setStudentname("aaa");
    		student.getStudentname();
    		student.setSex("女");
    		student.getSex();
    		student.setBirthday("1995.12.31");
    		student.getBirthday();
    		student.setDepartment("计算机科学与技术系");
    		student.getDepartment();//学生表信息初始化
    
    		sc.setStudentno("12341234");
    		sc.getStudentno();
    		sc.setCourseno("45678");
    		sc.getCourseno();
    		sc.setGrade(87.5);
    		sc.getGrade();//学生成绩表信息初始化
    
    		course.setCourseno("12121");
    		course.getCourseno();
    		course.setCoursename("计算机组成原理");
    		course.getCoursename();
    		course.setPreviousno("34567");
    		course.getCourseno();
    		course.setCredit(10);
    		course.getCredit();//课程表信息初始化
    
    		System.out.println(student.getInfo());
    		System.out.println();
    		System.out.println(sc.getInfo());
    		System.out.println();
    		System.out.println(course.getInfo());//输出信息
    
    	}
    
    }
    

      

    oraclepeixun
  • 相关阅读:
    面向对象编程
    re模块(正则表达式)
    numpy 模块
    hashlib,logging模块
    模块
    使用Python将Excel中的数据导入到MySQL
    [译]学习IPython进行交互式计算和数据可视化(七)
    [译]学习IPython进行交互式计算和数据可视化(六)
    [译]学习IPython进行交互式计算和数据可视化(五)
    [译]学习IPython进行交互式计算和数据可视化(四)
  • 原文地址:https://www.cnblogs.com/dldrjyy13102/p/7472128.html
Copyright © 2011-2022 走看看